MySQL准备的语句(两个表和数据)和PHP while&;for循环组合
我在MySQL中有两个表,使用mysqli prepared语句 MySQL表: 菜单表MySQL准备的语句(两个表和数据)和PHP while&;for循环组合,php,mysql,mysqli,Php,Mysql,Mysqli,我在MySQL中有两个表,使用mysqli prepared语句 MySQL表: 菜单表 menuID (PK) - menuName 1 Menu 1 2 Menu 2 3 Menu 3 4 Menu 4 submenuID(PK) - submenuName - menuID 1 submenu 1 1
menuID (PK) - menuName
1 Menu 1
2 Menu 2
3 Menu 3
4 Menu 4
submenuID(PK) - submenuName - menuID
1 submenu 1 1
2 submenu 2 1
3 submenu 1 4
4 submenu 2 4
子菜单\u表
menuID (PK) - menuName
1 Menu 1
2 Menu 2
3 Menu 3
4 Menu 4
submenuID(PK) - submenuName - menuID
1 submenu 1 1
2 submenu 2 1
3 submenu 1 4
4 submenu 2 4
我的死锁是在执行while或嵌套循环时为submenu和menu传递正确的值
PHP代码(使用WHILE循环,稍后使用FOR循环和组合):
-
($i=0;$inum_行;$i++)的
{
//写入菜单项
//新循环通过子菜单
//如何获取菜单索引作为循环子菜单的参考点
}
预期结果:
<ul class="top-bar">
<li>
<a href=""><span>Menu 1</span></a>
<ul class="sub"><li>Submenu 1-1</li></ul>
<ul class="sub"><li>Submenu 1-2</li></ul>
</li>
<li>
<a href=""><span>Menu 2</span></a>
</li>
<li>
<a href=""><span>Menu 3</span></a>
</li>
<li>
<a href=""><span>Menu 4</span></a>
<ul class="sub"><li>Submenu 4-1</li></ul>
<ul class="sub"><li>Submenu 4-2</li></ul>
</li>
</ul>
-
- 子菜单1-1
子菜单1-2
-
-
-
子菜单4-1
子菜单4-2
-
-
您不应该在循环内部执行查询。听起来你所描述的是一个嵌套的集合,有很多资源来表示这些集合。如果您使用类似ORM的原则,那么可以使用Gedmo嵌套集扩展来处理它。这是一个非常常见的问题,所以如果你研究树和嵌套集,有很多解决方案。很抱歉造成混淆,循环中没有查询。我只是在上面(WHILE和FOR循环)展示了我尝试过的各种事情。我现在就编辑它。你能再添加一些PHP代码吗?现在这还不够,你不应该在循环中进行查询。听起来你所描述的是一个嵌套的集合,有很多资源来表示这些集合。如果您使用类似ORM的原则,那么可以使用Gedmo嵌套集扩展来处理它。这是一个非常常见的问题,所以如果你研究树和嵌套集,有很多解决方案。很抱歉造成混淆,循环中没有查询。我只是在上面(WHILE和FOR循环)展示了我尝试过的各种事情。我现在就编辑它。你能再添加一些PHP代码吗?现在,这还远远不够。
<ul class="top-bar">
<?php
while($row = $stmt1->fetch()){
?>
<li>
<a href=""><span><?php echo($menuName);?></span></a>
<?php
$sql = "select * from submenu_table where menuID = ".$row['menuID'];
$stmt2->query($sql);
while($sub_row = $stmt2->fetch()){
?>
<ul class="sub"><li><?php echo($sub_row['submenuname']);?></li></ul>
<?php
}
?>
</li>
<?php
}
?>
</ul>