你好,我最近开始学习 php 和 mySql,我正在尝试创建一个动态的多级下拉菜单模块,我一直在学习一些教程,但我似乎无法让它工作,请帮忙。
我有 1 个名为:menu 的表
id ......parent_id ....名字
1............0............首页
2......0......关于
3............0............产品
4............2............我做什么
5............3............ jar 头
这是我正在使用的代码。
<?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);
?>
现在它应该看起来像这样:
- 家
- 关于
- 我做什么
- 产品
- jar 头
但它只显示:
- 首页
- 关于
- 产品
如果我将产品和 jar 头放在 parent_id 2 下,它会显示子元素,但不会显示任何其他 parent_id
请帮帮我,我正要把东西扔出窗外,thnx :)
最佳答案
您的第二个查询不在循环内,因此它仅使用 $pid
(3) 的最后一个值运行。该值(“Products”)没有子项,因此您在屏幕上看不到任何子项。将您的第二个查询放在一个循环中,以便您可以使用每个 $pid
。
关于来自sql db的php动态css下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20618094/