【发布时间】:2016-12-13 17:15:57
【问题描述】:
我有一个这样的 MySQL 查询:
SELECT c.id
, c.company_name
, b.brand_id
, b.brand_name
FROM companies as c
JOIN brands AS b
ON c.id = b.company_id;
返回一个像这样的表:
结果存储在$items
我希望能够使用foreach 循环来显示如下结果:
<ul>
<li><b>adidas plc</b></li>
<li>adidas</li>
</ul>
<ul>
<li><b>coca-cola</b></li>
<li>coke</li>
<li>dr pepper</li>
<li>7up</li>
</ul>
<ul>
<li><b>ebay</b></li>
<li>Duobam</li>
</ul>
如何仅使用上述连接查询来完成此操作?我可以通过首先查询公司表然后对品牌表上的每一个进行新的查询来做到这一点,但是对于成千上万的公司和多个品牌来说,这会导致太多的查询。
foreach($items as $item){
echo '
<ul>
<li><b>'.$item['company_name'].'</b></li>
<li>'.$item['brand_name'].'</li>
</ul>
';
}
【问题讨论】:
-
只需循环遍历结果,如果公司名称更改关闭并打开
<ul> -
尽管如此它将/可以工作。这是做类似事情的通常方法。在一个循环中存储当前的 company_name,在下一个循环中与实际存储的比较。如果不同-> 新建一个表头,如果相同则输出品牌。
-
你有示例代码吗?
-
你需要展示你目前拥有的 PHP。您正在加载查询结果吗?变量名是什么?等等。
-
@MikeMeade 你还没有看到答案,是吗?