我必须通过使用PHP和MySQL数据库表来构建动态菜单。数据库表必须至少包含以下列:
链接名称,链接网址,链接顺序,链接状态(是否有效)。
我的问题是我从那里去哪里。我不是在寻找完整的代码来解决这个问题,而是想知道是否有人会有任何指针或知道任何有用的教程。我一直在寻找相当长的一段时间,但我不知道如何解决我必须使用的列的问题,因为我从来没有像这样使用MySQL和PHP。我还非常不清楚链接顺序列应该做什么。
以下是我如何设置数据库表,如果它能提供任何见解。
`id` int(11) NOT NULL AUTO_INCREMENT,
`link_name` varchar(255) NOT NULL,
`link_url` varchar(255) NOT NULL,
`link_order` int(11) NOT NULL DEFAULT '0'
`link_status` enum('0','1') NOT NULL DEFAULT '1'
PRIMARY KEY (`id`)
如果这是一个模糊的问题,我道歉。感谢任何能给我任何指示的人。
答案 0 :(得分:0)
我希望它对你有所帮助。您将了解动态创建菜单的逻辑。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Bootstrap 101 Template</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="container-fluid">
<div class="row">
<div class="col-md-2">
<div id="MainMenu">
<div class="list-group panel">
<?php
$conn=new mysqli("localhost","root","","test");
display_children(0, 1);
function display_children($parent, $level) {
$result = $GLOBALS['conn']->query("SELECT a.id, a.label, a.link, Deriv1.Count FROM `menu` a LEFT OUTER JOIN (SELECT parent, COUNT(*) AS Count FROM `menu` GROUP BY parent) Deriv1 ON a.id = Deriv1.parent WHERE a.parent=" . $parent);
while ($row = $result->fetch_assoc()) {
$random = substr( md5(rand()), 0, 7);
if ($row['Count'] > 0) {
if($level ==1){// To show root menu which contain Submenu
echo "<a href='#".$random."' class='list-group-item list-group-item-success' data-toggle='collapse' data-parent='#MainMenu'>".$row['label']."</a>";
echo "<div class='collapse' id='".$random."'>";
display_children($row['id'], $level + 1);
echo "</div>";
}else{ // to show sub menu of rootmenu which also contain submenu
echo "<a href='#".$random."' class='list-group-item' data-toggle='collapse' data-parent='#".$random."'>".$row['label']."<i class='fa fa-caret-down'></i></a>";
echo "<div class='collapse list-group-submenu' id='".$random."'>";
display_children($row['id'], $level + 1);
echo " </div>";
}
} elseif ($row['Count']==0) { //To show those menu which don't contain submenu. It might be either root menu or leaf menu of sub menu
echo "<a href='javascript:;' class='list-group-item'>".$row['label']."</a>";
} else;
}
}
?>
</div>
</div>
</div>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
</body>
</html>
下载sql文件的链接
https://drive.google.com/file/d/0B0u93IM3-_XHTWlQLVJsSm9SelU/view?usp=sharing