MySQL准备的语句(两个表和数据)和PHP while&;for循环组合

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

我在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
    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>