Php 2个带有mysql查询的foreach循环

Php 2个带有mysql查询的foreach循环,php,mysql,Php,Mysql,我有两个mysql表工具栏和子工具栏 | id | subtoolbar | toolbarid | status | | 1 | Editar | 1 | ACTIVE | | 2 | Agregar | 1 | ACTIVE | | 3 | Bancas | 2 | ACTIVE | | 4 | Listeros | 2 | ACTIVE | | 5 | Agencias |

我有两个mysql表工具栏和子工具栏

| id | subtoolbar | toolbarid | status |


|  1 | Editar     | 1         | ACTIVE |

|  2 | Agregar    | 1         | ACTIVE |

|  3 | Bancas     | 2         | ACTIVE |

|  4 | Listeros   | 2         | ACTIVE |

|  5 | Agencias   | 2         | ACTIVE |

|  6 | Taquillas  | 2         | ACTIVE |

|  7 | Layout     | 3         | ACTIVE |
工具栏

| id | toolbar  | status |

|  1 | Usuarios | ACTIVE |

|  2 | Bancas   | ACTIVE |

|  3 | Balance  | ACTIVE |
次嗅

| id | subtoolbar | toolbarid | status |


|  1 | Editar     | 1         | ACTIVE |

|  2 | Agregar    | 1         | ACTIVE |

|  3 | Bancas     | 2         | ACTIVE |

|  4 | Listeros   | 2         | ACTIVE |

|  5 | Agencias   | 2         | ACTIVE |

|  6 | Taquillas  | 2         | ACTIVE |

|  7 | Layout     | 3         | ACTIVE |
我想列出每个报表及其子报表,因此我尝试了以下方法

$res=mysql_query("select * FROM toolbar");

$num_rows = (mysql_num_rows($res) -1);

while ($x = mysql_fetch_assoc($res)){

  $toolid[] = $x['id'];

  $toolbar[] = $x['toolbar'];

  $toolstatus[] = $x['status'];

}
在php中

foreach (range(0, $num_rows) as $number) {

$res1=mysql_query("select * FROM subtoolbar where

 toolbarid='$toolid[$number]'");

$num_rows2 = (mysql_num_rows($res1) -1);

while ($y = mysql_fetch_assoc($res1)){

  $subtoolid[] = $y['id'];

  $subtoolbar[] = $y['subtoolbar'];

  $toolbarid[] = $y['toolbarid'];

  $subtoolstatus[] = $y['status'];

}


 echo $toolbar[$number]; 

foreach (range(0, $num_rows2) as $number2) {

echo $subtoolbar[$number2];

}}
结果是这样的

惯常

  • 编辑

  • 阿格雷戈

班卡斯

  • 编辑

  • 阿格雷戈

  • 班卡斯

  • 李斯特罗斯

平衡

  • 编辑
请尝试以下方法: 但必须记住:

  • 必须使用mysqli_u()而不是mysql_())
  • 检查数组是否为空&值是否已设置

    $res=mysql_query("select t.id,t.toolbar,st.* FROM toolbar t left join 
      subtoolbar st on t.id=toolbarid where t.status='ACTIVE' and 
      st.status='ACTIVE'");
    
     if(mysql_num_rows($res)>0)
     {
       while ($rs = mysql_fetch_assoc($res)){
          $retArr[$rs['toolbarid']][] = array("toolbar"=>$rs["subtoolbar"], "subtoolbar"=>$rs["subtoolbar"]);
       }
    }
    
    foreach($retArr as $rs )
    {
     $cnt=0;
    
       foreach($rs as $toolbarName => $data)
       {   
         if( $cnt==0)
         {
          echo $data["toolbar"]."<br>"; 
         }
         $cnt++;
         echo $data["subtoolbar"]."<br>";
    
       }
    
    }
    
    $res=mysql\u query(“从toolbar t left join中选择t.id、t.toolbar、st.*)
    t.id上的子工具栏st=工具栏id,其中t.status='ACTIVE'和
    st.status='ACTIVE');
    如果(mysql_num_rows($res)>0)
    {
    而($rs=mysql\u fetch\u assoc($res)){
    $retArr[$rs['toolbarid']][]=数组(“工具栏”=>$rs[“次工具栏”],“次工具栏”=>$rs[“次工具栏”]);
    }
    }
    foreach($R重设为$rs)
    {
    $cnt=0;
    foreach($rs作为$toolbarName=>$data)
    {   
    如果($cnt==0)
    {
    echo$data[“工具栏”]。“
    ”; } $cnt++; echo$data[“subtoolbar”]。“
    ”; } }

  • 我正在分享我自己的代码,它在我的网站上正常工作-

    <div id="navbar" class="navbar-collapse collapse">
    
                                <ul class="nav navbar-nav">
                                <?php
                                $Clsmenu = new Menus;
                                $menu_res = mysql_query("SELECT * FROM `nav_menus`");();
                                while($menu_details=mysql_fetch_array($menu_res))
                                {                               
                                    $sub_menu_query=mysql_query("SELECT * FROM `category` WHERE `Menu_id`='$menu_details['id']'");
                                    if(mysql_num_rows($sub_menu_query))
                                    {?>
                                    <li class="dropdown">
                                        <a href="category.html" class="dropdown-toggle" data-toggle="dropdown"><?php echo $menu_details['name']; ?></a>
                                         <ul class="mega_dropdown dropdown-menu" style="width: 830px;">
                                          <?php
                                            while($submenu_relation_details=mysql_fetch_array($sub_menu_query))
                                            {
                                         ?>
                                            <li class="block-container col-sm-2">
                                                <ul class="block">
                                                    <li class="link_container group_header">
                                                        <a href="#"><?php echo $submenu_relation_details['name']; ?></a>
                                                    </li>
                                                    <?php
                                                      $sub_menu=mysql_query("SELECT * FROM `sub_category` WHERE `cat_id`='$submenu_relation_details['id']'");
                                                      $i=1;
                                                      while($data=mysql_fetch_array($sub_menu))
                                                      { 
                                                       ?>
                                                        <li class="link_container"><a href="Selectedproduct.php?id=<?php echo base64_encode($data['id']); ?>"><?php echo $data['name']; ?></a></li>
                                                       <?php
                                                       $i++;
                                                      }
                                                    ?>
                                                 </ul>
                                            </li>
                                            <?php
                                            }
                                            ?>
                                            </ul>
    
                                    </li>
    
                                    <?php 
                                    }
                                    else
                                    {
                                    ?>
                                    <li>
                                    <a href="category.html" ><?php echo $menu_details['name']; ?></a></li>
                                    <?php
                                    }
    
                                }
                                ?>
                                </ul>
    
                            </div>
    
    
    

      你想问什么?清楚地回答你的问题注:
      {}
      通常在格式化代码方面做得很好。我试图得到以下结果suarios(Editar Agregar)Bancas(Bancas Listeros Agencias Taquillas)Balance(Layout)我想根据id值获得每个工具栏及其子工具栏,正如你看到的,我在工具栏id 2中有editar,而它属于id 1。谢谢你,dipantwita kundu工作得很好。只有你必须修改数组(“toolbar”=>$rs[“subtoolbar”]作为以下数组(“toolbar”=>$rs[“toolbar”]如果你的代码正常工作,那么没有问题,但不会建议在循环中执行查询。是的,我的代码工作正常。我在许多网站上使用过这些代码来显示菜单及其子菜单。你也可以尝试一下。