我试图通过包含对象的数组循环并打印出我需要的数据到我的HTML。这个HTML需要打印我的第一个元素,然后"创建"一个新的HTML显示我的第二个元素,等等…
这是我的PHP函数,我查询DB:
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…等,我需要打印出查询可能返回的不同值。
编辑:我很确定我也必须使用for
,但不太确定如何做到这一点:p
如果$resultado
已经表示你想要循环的数组,那么这是错误的:
$cuponesUsuario[] = $model->getCuponesUser();
就这样做:
$cuponesUsuario = $model->getCuponesUser();
在foreach
循环中,您可以这样访问数据:
<?php echo $valor->title; ?>
问题出在你对语法的使用上:
$cuponesUsuario[] = //...
$var[]=
语法在数组$var
后面追加一个对象。因此,$cuponesUsario是一个只有一个元素的数组,而这个元素就是实际的数据结构。当您在数组上调用foreach()
时,它只执行一次,因为数组中只有一个元素。
相反,删除[]并直接将结果分配给$cuponesUsario
,因为它已经是数组数据。