如何在php中显示其父项下的子菜单项?

如何在php中显示其父项下的子菜单项?,php,Php,我需要在php中显示其相应父项下的所有子菜单项。 我已经创建了mysql查询,但无法获取父项下的所有子项。以下是我的代码: for ($i = 0; $i < count($menu); $i++) { echo'<li><a href="' . $url . $menu[$i]['id'] . '" title="' . $menu[$i]["menu_name"] . '">' . $menu[$i]["menu_name"] . '</a>

我需要在php中显示其相应父项下的所有子菜单项。 我已经创建了mysql查询,但无法获取父项下的所有子项。以下是我的代码:

for ($i = 0; $i < count($menu); $i++) {

    echo'<li><a href="' . $url . $menu[$i]['id'] . '" title="' . $menu[$i]["menu_name"] . '">' . $menu[$i]["menu_name"] . '</a>';
    if ($menu[$i]['parent_id'] != "0" && $menu[$i]['parent_id'] != null) {
        echo'<ul>';
        echo'<li><a href="#" title="' . $menu[$i]["submenu_name"] . '">' . $menu[$i]["submenu_name"] . '</a></li></ul></li>';
    }
}

MySQL Query: SELECT m.id, m.menu_name, sm.parent_id,sm.submenu_name,sm.id
    FROM menu AS m
    LEFT JOIN submenu as sm on (m.id=sm.parent_id)

    Home | Courses | Courses  | 
         | Course-1| Course 2 | 
for($i=0;$i”;
如果($menu[$i]['parent\U id']!=“0”&&$menu[$i]['parent\U id']!=null){
回声“
    ”; 回音“
”; } } MySQL查询:选择m.id、m.menu\u name、sm.parent\u id、sm.submenu\u name、sm.id 从菜单中选择m sm打开时的左连接子菜单(m.id=sm.parent\u id) 家庭|课程|课程| |课程-1 |课程2 |

所以我需要课程1和课程2下的课程。请帮助我在php代码中哪里出错

试试这样的方法:

for ($i = 0; $i < count($menu); $i++) {
    echo'<li><a href="'.$url.$menu[$i]['id'].'" title="'.$menu[$i]["menu_name"].'">'. $menu[$i]["menu_name"] . '</a>';
    echo'<ul>'.$menu[$i]['childs'].'</ul></li>';
}
for($i=0;$i”;
回显“
    ”.$menu[$i]['childs'..
”; }
MySQL查询:

SELECT
    m.id, m.menu_name, GROUP_CONCAT(CONCAT("<li><a href=\"#\" id=\"",sm.id,"\">",sm.submenu_name,"</a></li>")) as childs
FROM menu AS m
LEFT JOIN submenu as sm on (m.id=sm.parent_id)
GROUP BY m.id
选择
m、 id,m.menu\u name,组\u CONCAT(CONCAT(“
  • ”)作为孩子 从菜单中选择m sm打开时的左连接子菜单(m.id=sm.parent\u id) 按m.id分组
    这个问题把我弄糊涂了。您是否无法在父项下显示子项,或者无法从数据库中获取子项信息?实际上,我得到的最终输出是最后几行,即我在“课程”下获取课程1,在“其他课程”下获取课程2。我想在课程下同时显示课程1和课程2。是的,我无法在父项下显示子项!我要添加的唯一一件事是,要么为
    count($menu)
    分配一个变量,要么使用类似
    foreach($courseHeading)的foreach循环。
    让php每次通过循环评估count函数都会带来性能损失