2017-04-27 6 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 
関連する問題