【问题标题】:Dynamic Menu Through PHP and MySQL通过 PHP 和 MySQL 实现的动态菜单
【发布时间】:2017-09-24 16:39:16
【问题描述】:

我必须通过使用 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`)

如果这是一个模糊的问题,我深表歉意。感谢任何能给我指点的人。

【问题讨论】:

标签: php mysql dynamic menu


【解决方案1】:

希望对你有所帮助。您将了解动态创建菜单的逻辑。

<!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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-20
    • 1970-01-01
    相关资源
    最近更新 更多