来自 SQL DB 的 PHP 动态 CSS 下拉菜单


php dynamic css dropdown menu from sql db

你好,我最近开始学习php和mySql,我正在尝试创建一个动态的多级下拉菜单模块,我一直在关注一些教程,但我似乎无法让它工作,请帮忙。

我有 1 张名为:菜单的表

id...parent_id....名字

1...0.首页
2...........0....关于
3..........0.....产品
4...........2..........我做什么
5...........3...罐头

这是我正在使用的代码。

<?php
require_once "db_con.php";
echo '<ul>';
$main_set = "SELECT * FROM menu WHERE parent_id =0 ORDER BY id ASC"; 
$query = mysqli_query($con, $main_set) or die (mysqli_error()); 
$menuDisplay = '';
while ($row = mysqli_fetch_array($query)) { 
    $pid = $row["pages_id"];
    $name = $row["name"];
    $menuDisplay .= '<li><a href="listed_menu.php?pid=' . $pid . '">' . $name . '</a></li>    ';
}
echo $menuDisplay;
echo '<ul>';
$sub_set = "SELECT * FROM menu WHERE parent_id ={$pid} ORDER BY id ASC"; 
$query = mysqli_query($con, $sub_set) or die (mysqli_error()); 
$menuDisplay = '';
while ($row = mysqli_fetch_array($query)) { 
    $pid = $row["pages_id"];
    $name2 = $row["name"];
    $menuDisplay .= '<li><a href="listed_menu.php?pid=' . $pid . '">' . $name2 . '</a></li>    ';
}
echo $menuDisplay;
echo '</ul>';
echo '</ul>';
mysqli_free_result($query); 
?>

现在它应该看起来像这样:

  • 大约
    • 我做什么
  • 产品

但它只显示:

  • 大约
  • 产品

如果我将产品和罐头放在 parent_id 2 下,它确实会显示子项目,但不会显示任何其他parent_id

请帮帮我,我正要把东西扔出窗外,谢谢:)

第二个查询不在循环内,因此它仅使用最后一个值 $pid (3( 运行。该值("产品"(没有子项,因此您在屏幕上看不到任何子项。将第二个查询放在循环中,以便可以使用每个$pid