菜单仅显示第一个子php
我有以下代码:菜单仅显示第一个子php,php,arrays,recursion,Php,Arrays,Recursion,我有以下代码: $Maxcount = 10;$count = 1;$query = "SELECT pages.paid, pages.pag_desc, pages.isActive, pages.pag_pag_id, pages.pag_type, parent.pag_desc,";while ($count <= $Maxcount) {$query .= "parent".$count.".pag_desc AS paren
$Maxcount = 10;$count = 1;$query = "SELECT pages.paid,
pages.pag_desc,
pages.isActive,
pages.pag_pag_id,
pages.pag_type,
parent.pag_desc,";while ($count <= $Maxcount) {$query .= "parent".$count.".pag_desc AS parent".$count;if ($count != $Maxcount) {$query .= ", ";$count++;} $query .= " FROM pages ";$query .= "LEFT JOIN pages parent ON pages.pag_pag_id = parent.paid ";$count = 1;while ($count <= $Maxcount) { if ($count === 1) {
$query .= "LEFT JOIN pages parent".$count." ON parent.pag_pag_id = parent".$count.".paid "; }else {
$query .= "LEFT JOIN pages parent".$count." ON parent".($count-1).".pag_pag_id = parent".$count.".paid " }$count++;}$query .="LEFT JOIN tblgroups_rights_gri on pages.paid = tblgroups_rights_gri.gri_pag_id
INNER JOIN users_usergroups on tblgroups_rights_gri.gri_usrg_id = users_usergroups.gid
WHERE uid = '$uid' AND $where AND pages.isActive=1";
$result = $db->query($query);
if (mysqli_num_rows($result)) {
$menu = array();
while ($row = $result->fetch_assoc()) {
$menu[] = $row;
}
}
$Maxcount=10$计数=1$query=“选择pages.paid,
pages.pag_desc,
pages.isActive,
pages.pag_pag_id,
pages.pag_类型,
父项。pag_desc“;而($count fetch\u assoc()){
$menu[]=$row;
}
}
为了显示菜单,我使用了这个递归函数:
foreach($menu as $row){
$x[$row['parent3']][$row['parent2']][$row['parent1']][$row['pag_desc']]=$row['pag_desc'];
}function recursive($x, $out) { if (is_array($x)){
//$out .= "<ul>";
foreach($x as $i => $data) {
if ($i === '') {
$out = recursive($data, $out);
continue;
}
$out .= "<li>";
if (is_array($data)){
$out .= ' <a href="#" class="dropdown-toggle" data-toggle="dropdown">';
}
else
{
$out .= '<a href="#">';
}
$out .= $i;
if (is_array($data)){
$out .= '<b class="caret"></b></a>';
}
else
{
$out .= "</a>";
}
if (is_array($data)){
$out .= "<ul class='dropdown-menu'>";
$out = recursive($data, $out);
$out .= "</ul></li>";
}
else
{
$out .= "</li>";
}
}
}
return $out;
}
foreach($menu作为$row){
$x[$row['parent3'][$row['parent2'][$row['parent1'][$row['pag\U desc']]=$row['pag\U desc'];
}函数递归($x,$out){if(is_数组($x)){
//$out.=“”;
foreach($x作为$i=>$data){
如果($i==''){
$out=递归($data,$out);
继续;
}
$out.=“- ”;
if(is_数组($data)){
$out.='';
}
其他的
{
$out.=”;
}
if(is_数组($data)){
$out.=“
”;
}
其他的
{
$out.=“”;
}
}
}
退回$out;
}
结果是,它只显示父级和第一个子级,但在数据库中子级有另一个子级等
例如:
父用户
有一个子管理员
和管理员有另一个子编辑器
但它只将用户
显示为家长,将管理员
显示为孩子
需要帮忙吗?提前感谢你object(mysqli_result)#15(5){[“current_field”]=>int(0)[“field_count”]=>int(16)[“length”=>NULL[“num_rows”]=>int(164)[“type”]=>int(0)}我在@admcfajnobject(mysqli_result)#15(5){[“current_field”=>int(0)[“field u count”=>int(0)[“field u count”]>int(16)=>num(164)[“type”]=>int(0)}我得到了这个结果@admcfajn