兩個 while 循環好嗎?有更好的寫法嗎?
<? while($row = mysqli_fetch_array($data)){ ?>
<?
$product_data = $pdo->query(
"SELECT DISTINCT p.prod_id, p.icon FROM product AS p
JOIN product_order AS po ON p.prod_id = po.prod_id
JOIN user_order AS uo ON po.order_id = '{$row['order_id']}' AND uo.id = '{$_SESSION['user-id']}' "
);
while ($product_row = mysqli_fetch_array($product_data)){ ?>
<img class="" src="<?=$product_row['icon'];?>">
<? }?>
<?=$row['order_id'];?>
<?}?>
問題一
這樣的 兩個 while 大神有什麼其他好的寫法嗎?
我已經思路死
總覺得哪裡怪怪的?
有大神有其他更好的寫法可以分享嗎?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
一次子查询即可
这样一次查询结果就出来了,然后遍历输出PRODUCTTABLENAME为你第一个循环查询的表
外部循环是一个列表,内部循环是这个列表中取出一个项目作为条件的列表,这种情况建议先做两次查询,然后做内存关联处理。
奇怪,昨天晚上明明在手机上回答了呢。谢邀。你这个需求是需要根据某个表里面的某个值进行查询另一个表的数据以获取到详细的相关信息,这里你可以考虑用联表查询,你可以自己去了解下 mysql 的 join 操作。建议先去了解然后再参考我提供的 sql 好些。
啊,仔细看了下才发现原来你已经用了 join ,那为什么不多用一重呢?昨天用手机看,因为你代码的写法,看着很痛苦所以就没详细看了代码。
最后希望以上内容对你有帮助。
用mysql连表查询,不要循环查询,很慢
楼上正解,对数据库的操作不要放在循环语句中,表的关联查询最好在循环外部就做好。而且你这里好像是使用了框架了是吗?我记得YII框架中有“<?=$row['order_id'];?>”这样的写法,用框架的话,对MVC的划分还是挺清晰的