来自sql db的php dynamic css下拉菜单

时间:2013-12-16 18:27:05

标签: php css sql dynamic drop-down-menu

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

我有一个名为:menu

的表

ID ...... PARENT_ID ....名称

1 ........... 0 ...........家
2 ........... 0 ...........约
3个........... 0 ...........产品
4 ........... 2 ...........我做什么 5 ........... 3 ........... cans

这是我正在使用的代码。

<?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); 
?>

现在应该看起来像这样:

    • 我做什么
  • 产品

但它只显示:

  • home
  • 产品

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

请帮帮我,我准备扔掉窗外的东西,thnx:)

1 个答案:

答案 0 :(得分:0)

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