菜单仅显示第一个子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