我正在尝试遍历包含对象的数组,并将我需要的数据打印到HTML中。这个HTML需要打印我的第一个元素,之后"创建"一个新的HTML显示我的第二个元素,依此类推......
这是我的PHP函数,我查询数据库:
public function getCuponesUser(){
$db = JFactory::getDbo();
$user = JFactory::getUser()->id;
$query = 'SELECT * FROM #__cuphoneo_subscripcion as cs LEFT JOIN #__k2_items as k2i ON k2i.id = cs.item_id WHERE cs.user_id='.$user.' GROUP BY cs.item_id';
$db->setQuery($query);
$resultado = $db->loadObjectList();
return $resultado;
}
这是$resultado
返回的内容:http://pastebin.com/PSX7KMBq
这是我的HTML / PHP代码,我正在尝试打印检索到的数据:
<div class="panel-group" id="accordion">
<div class="panel panel-info">
<?php
$model = $this->getModel();
$cuponesUsuario[] = $model->getCuponesUser();
foreach($cuponesUsuario as $valor){
?>
<div class="panel-heading" data-toggle="collapse" data-parent="#accordion" data-target="#collapse1">
<div class="panel-heading-left">
<h4 class="panel-title accordion-toggle">
Data 1
</h4>
</div>
<div class="panel-heading-right">
<h4 class="panel-title">
Data 2
</h4>
</div>
</div>
<div id="collapse1" class="panel-collapse collapse">
<div class="panel-body">
<div class="panel-left">
<div class="panel-image">
Data 3
</div>
<div class="panel-fecha">
<span class="label label-info">Data 4</span>
</div>
</div>
<div class="panel-right">
<div class="panel-desc">
Data 5
</div>
<div class="panel-boton-canjear">
<input class="btn" type="button" value="Canjear"/>
</div>
</div>
</div>
</div>
<?php } ?>
如果数据1,数据2,数据3等等,我需要打印出Query可能返回的不同值。
编辑:我很确定我还必须使用for
但不太确定如何执行此操作:P
答案 0 :(得分:2)
如果$resultado
已经表示要循环的数组,那么这是错误的:
$cuponesUsuario[] = $model->getCuponesUser();
这样做:
$cuponesUsuario = $model->getCuponesUser();
在foreach
循环中,您可以访问以下数据:
<?php echo $valor->title; ?>
答案 1 :(得分:1)
问题在于您使用此语法:
$cuponesUsuario[] = //...
$var[]=
语法将对象附加到数组$var
。因此,$ cuponesUsario是一个包含一个元素的数组,而一个元素就是您的实际数据结构。当您在数组上调用foreach()
时,它只执行一次,因为数组中只有一个元素。
相反,删除[]并直接将结果分配给$cuponesUsario
,因为它已经是数组数据。