如何用数据库下拉菜单创建导航菜单?
问题描述:
如果我从我的导航栏的数据库中获取导航项目,如ff:Select * FROM table WHERE linkcatagory ='main-menu'; < <这将列出所有主菜单项,如果其中一项具有也必须从数据库中提取的子项目会发生什么。我还为我的子菜单声明了一个链接类别。所以逻辑是当我通过主要项目进行盘旋时,子菜单也会从数据库中取出。我怎样才能使它工作?如何用数据库下拉菜单创建导航菜单?
下面的代码是我的示例标记,但我不认为它是正确的。
<?php include "includes/config.php";
$sql = "Select * FROM sites WHERE site_category = 'main-menu'";
$result = mysql_query($sql);
?>
<header>
<a href="index.php" class="logo"><h1>Website</h1></a><!--LOGO-->
<div id="gutter"></div><!--gutter-->
<nav>
<ul id="menu">
<?php while($record = mysql_fetch_array($result)){
$sitename = $record['site_name'];
$sitelink = $record['site_link'];
if($sitename == 'products'){
?>
<li><a href="<?= $sitelink ?>" onMouseOver=""><?= $sitename ?></a>
<ul class="submenu">
<?php
$sql = "Select * FROM sites WHERE
site_category = 'sub-menu'";
$result = mysql_query($sql);
while($record =
mysql_fetch_array($result)){
?>
<li><a href="<?= $sitelink ?>"><?=
$sitename ?></a></li>
<?php
}//while close
?>
</ul>
</li>
<?php
}else{
echo "<li><a href=".$record['site_link'].">".$record['site_name']."
</a></li>";
}
}//while close?>
</ul><!--menu-->
</nav><!--NAV-->
</header><!--HEADER-->
答
正如我评论我不能为您提供我使用的功能,但有很多答案给你 - 可能的重复问题;
Recursive menu with php and MySQLi
你需要建立一个数据库的结构,其中包括menu_id&menu_parent_id再一次获取所有菜单项,然后用一个自调用函数对其进行处理建立您的菜单结构与层次结构...如果你喜欢我可以张贴我使用的一个,但它有点复杂 - 我使用不同的风格控制d由另一个参数 –
我可以试试.. –
好吧,那么你在这里是我的朋友... http://phpfiddle.org/lite/code/fb4-6uc –