我在循环第二个循环时遇到问题。它只会循环一次。所以我只能得到第二个循环的第一行的值。请帮我解决这个问题,我是初学者。
<ul id="navbar">
<?php
$rel = "SELECT * FROM table1 ORDER BY category";
$sql=$db->query($rel);
while($row = $sql -> fetch_array()){
?>
<li><a href="category.php?id=<?php echo $row['category_id'];?>"><?php echo $row['category'];?></a>
<ul>
<?php
$sel = "SELECT * FROM table2 WHERE category_id=".$row['category_id']." ORDER BY subcategory ASC";
$sql=$db->query($sel);
while($row1 = $sql -> fetch_array()){
?>
<li><a href="subcategory.php?id=<?php echo $row1['subcategory_id'];?>"><?php echo $row1['subcategory'];?></a></li>
<?php }?>
</ul>
</li>
<?php }?>
</ul>
答案 0 :(得分:3)
您正在覆盖内循环$sql
,使外循环无效。在第二个查询中为SQL结果标识符使用另一个变量名。
答案 1 :(得分:2)
嗯,您将第一个查询的结果保留在变量$sql
$sql=$db->query($rel);
但是,在第二个循环之前,你会覆盖该变量。
$sql=$db->query($sel);
尝试为第二次使用声明一个新变量。说,$sql2
。
答案 2 :(得分:1)
这样做的原因是您对两个查询都使用变量$sql
。例如,将第二个重命名为$sql2
。
另外,请避免使用这么多<?php ?>
个标签。