【发布时间】:2013-02-10 08:21:48
【问题描述】:
我需要一些关于 PHP 的帮助。我有一个可以正常工作的多级 css 菜单,但现在我想根据数据库中的记录生成。
菜单代码:
<div id="page-wrap">
<ul class="dropdown">
<li><a href="#">Link 1</a> </li>
<li><a href="#">Link 2</a> </li>
<li><a href="#">Link 3</a> </li>
<li><a href="#">Link 4</a>
<ul class="sub_menu">
<li><a href="#">Link 4 - 1</a></li>
<li><a href="#">Link 4 - 2</a></li>
<li><a href="#">Link 4 - 3</a></li>
</ul>
</li>
<li><a href="#">Link 5</a></li>
<li><a href="#">Link 6</a> </li>
</ul>
</div>
在数据库中,每条记录都有一个名为 main_manu 的字段,如果该字段的值为 Yes,并且该值为 ,则该字段将成为主链接否,然后它有另一个字段 (sub_menu) 表示应该放置此链接的父菜单。!请参阅屏幕截图。
DB Fields
所以,现在我不知道如何做将获取记录的 php 片段,如果 main_menu 的值为 yes,它将创建一个顶级菜单,如果 main_menu 的值否,会根据sub_menu字段的值创建一个子级菜单。
非常感谢
更新
这是我到目前为止的代码,它可以工作。如果我可以使用单个查询而不是多个嵌套查询,那就太好了。
<div id='page-wrap'>
<ul class='dropdown'>
<?
$sql_menu = "SELECT * FROM content WHERE visible = '1' and main_menu='yes' ";
$result_menu = mysql_query($sql_menu);
while($row = mysql_fetch_assoc($result_menu))
{
$id=$row['id'];
$menu_top=$row['menu_name'];
$menu_url=$row['menu_url'];
print "<li><a href='$menu_url'>$menu_top</a>";
$sql_sub = "SELECT * FROM content WHERE sub_menu = '$menu_url' ";
$result_sub = mysql_query($sql_sub);
$num_rows = mysql_num_rows($result_sub);
while($row = mysql_fetch_assoc($result_sub))
{
$id=$row['id'];
$menu_sub=$row['menu_name'];
$sub_url=$row['menu_url'];
If ($num_rows != 0)
{
print "<ul class='sub_menu'>
<li><a href='$sub_url'>$menu_sub</a></li>
</ul>";
}
}
print "</li>";
}
?>
</ul>
</div>
【问题讨论】:
-
实际上,您不需要 main_menu 字段,因为您可以将任何具有空白 sub_menu 字段的内容作为主菜单的一部分。
-
您能列出您的数据库表中的字段并包含一些示例行吗?
-
主帖中的链接数据库字段指向我的数据库字段的屏幕截图