我有这个SQL查询从2个表中获取数据,并根据匹配的ID加入他们。SELECT *FROM bar_items LEFT JOIN bar_cats ON bar_cats.cat_id = bar_items.categoriesORDER BY bar_items.categories, bar_items.item_name ASC这给我这个结果我现在尝试将这些显示在类别中,并以类别名称作为每个类别的标题。到目前为止,我在旧的Stack Overflow帖子的帮助下有此代码:这里 $data = array(); foreach($results_lists as $row){ $data[$row['cat_name']][$row['item_name']]['item_name'] = $row['item_name']; $data[$row['cat_name']][$row['item_price']]['item_price'] = $row['item_price']; $data[$row['cat_name']][$row['item_image']]['item_image'] = $row['item_image']; } foreach($data as $category => $events){ echo $category.'<br>'; foreach($events as $event){ echo ' <> '.$event['item_name'].'<br>'; echo ' <> '.$event['item_price'].'<br>'; echo ' <> '.$event['item_image'].'<br>'; }但它没有按照我的需要运行,并且显示如下:(请注意空白的<>行,在列表的最下方,即使在查询中返回了某些价格,也不会显示某些价格)我要去哪里错了?
1 回答
![?](http://img1.sycdn.imooc.com/533e52b90001456f02000200-100-100.jpg)
慕森卡
TA贡献1806条经验 获得超8个赞
我认为您正在使生活变得比实际需要的更加复杂。通过结果集的简单传递应该能够产生您希望的输出。
$last_cat = null;
foreach($results_lists as $row){
if ( $last_cat != $row['cat_name'] ) {
echo $row['cat_name'] . '<br>';
$last_cat = $row['cat_name'];
}
echo ' <> '.$row['item_name'].'<br>';
echo ' <> '.$row['item_price'].'<br>';
echo ' <> '.$row['item_image'].'<br>';
}
- 1 回答
- 0 关注
- 158 浏览
添加回答
举报
0/150
提交
取消