2017-04-27 45 views
-1

我必須通過使用PHP和MySQL數據庫表建立一個動態菜單。數據庫表必須至少包含以下列:通過PHP和MySQL動態菜單

鏈接名稱,鏈接url,鏈接順序,鏈接狀態(是否存在)。

我的問題是我從哪裏去。我沒有尋找完整的代碼來解決這個問題,但想知道是否有人會有任何指針或知道任何可以幫助的教程。我一直在尋找相當一段時間,但我不知道如何解決我必須使用的列的問題,因爲我從來沒有像這樣使用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

link_order會像一個等級值,所以你的選擇應該由訂購。我認爲這是一個包含這些項目的單一菜單? – flauntster

+0

也許這樣? http://stackoverflow.com/questions/41031756/create-dynamic-menu-array-using-php/41042166#41042166 – Rasclatt

回答

0

我希望它可以幫助你。您將會了解動態創建菜單的邏輯。 SQL文件的

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

下載鏈接

https://drive.google.com/file/d/0B0u93IM3-_XHTWlQLVJsSm9SelU/view?usp=sharing