Php 2个带有mysql查询的foreach循环
我有两个mysql表工具栏和子工具栏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 |
| 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];
}}
结果是这样的
惯常
- 编辑
- 阿格雷戈
- 编辑
- 阿格雷戈
- 班卡斯
- 李斯特罗斯
- 编辑
$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”]如果你的代码正常工作,那么没有问题,但不会建议在循环中执行查询。是的,我的代码工作正常。我在许多网站上使用过这些代码来显示菜单及其子菜单。你也可以尝试一下。