2017-03-03 74 views
-1

你好我正尝试从我的数据库创建一个动态菜单。已经看到了很多例子,但我似乎不明白他们。这是我的数据库看起来像从mysql数据库创建动态菜单

CREATE TABLE IF NOT EXISTS `menu_main` (
`menu_id` int(11) NOT NULL AUTO_INCREMENT, 
`menu_name` varchar(50) NOT NULL, 
`menu_link` varchar(50) NOT NULL, 
`parent_id` varchar(50) NOT NULL, 
PRIMARY KEY (`menu_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ; 

这有什么想实现

<ul class="nav navbar-nav"> 
      <li class="active"><a href="index.php">Home</a></li> 
      <li><a href="#">All Products<span class="caret"></span></a> 
      <ul class="dropdown-menu"> 
       <li><a href="#">shoes</a></li>    
       <li><a href="#">cloth</a></li> 
       <li><a href="#">electronics</a></li> 
       <li><a href="#">furniture<span class="caret"></span></a> 
       <ul class="dropdown-menu"> 
        <li><a href="#">chairs</a></li> 
        <li><a href="#">stand</a></li> 
        <li><a href="#">pocher</a></li>   
       </ul> 
       </li> 
      </ul> 
      </li> 
     <li><a href="#">Mission</a></li> 

      <li><a href="#">Order</a></li>  

      <li><a href="#">About Us </a></li> 
     </ul> 
+4

您需要向我们展示你的尝试。 SO不是免费的编码服务。我们很乐意为您提供_existing_代码,但我们不会为您完成所有工作。 –

回答

1

这里是SQL

CREATE TABLE `menu` (
    `id` int(11) NOT NULL auto_increment, 
    `label` varchar(50) NOT NULL default '', 
    `link` varchar(100) NOT NULL default '#', 
    `parent` int(11) NOT NULL default '0', 
    `sort` int(11) default NULL, 
PRIMARY KEY (`id`), 
) ENGINE=MyISAM AUTO_INCREMENT=248 DEFAULT CHARSET=latin1; 

PHP函数

function display_children($parent, $level) { 
    $result = mysql_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); 
    echo "<ul>"; 
    while ($row = mysql_fetch_assoc($result)) { 
     if ($row['Count'] > 0) { 
      echo "<li><a href='" . $row['link'] . "'>" . $row['label'] . "</a>"; 
      display_children($row['id'], $level + 1); 
      echo "</li>"; 
     } elseif ($row['Count']==0) { 
      echo "<li><a href='" . $row['link'] . "'>" . $row['label'] . "</a></li>"; 
     } else; 
    } 

    echo "</ul>"; 
} 
+1

请格式化代码,并正确解释代码。 –

+0

beta nam tik kor。 na hoyle khabor ase。 –

+1

一个很好的答案包括一个详细的描述,而不仅仅是一段代码。为什么OP应该使用这个?它有什么作用?结果是什么?等等... –