вот структура html, как она должна выглядеть
<li><a href="#" class="menulink">Dropdown One</a> <ul> <li><a href="#">Navigation Item 1</a></li> <li> <a href="#" class="sub">Navigation Item 2</a> <ul> <li class="topline"><a href="#">Navigation Item 1</a></li> <li><a href="#">Navigation Item 2</a></li> </ul> </li> <li> <a href="#" class="sub">Navigation Item 3</a> <ul> <li class="topline"><a href="#">Navigation Item 1</a></li> <li><a href="#">Navigation Item 2</a></li> <li> <a href="#" class="sub">Navigation Item 3</a> <ul> <li class="topline"><a href="#">Navigation Item 1</a></li> <li><a href="#">Navigation Item 2</a></li> <li><a href="#">Navigation Item 3</a></li> </ul> </li> <li><a href="#">Navigation Item 4</a></li> </ul> </li> <li><a href="#">Navigation Item 4</a></li> <li><a href="#">Navigation Item 5</a></li> </ul> </li> <li><a href="#" class="menulink">Dropdown Two</a> <ul> <li><a href="#">Navigation Item 1</a></li> <li><a href="#">Navigation Item 2</a></li> </ul> </li>
и вот таблица mysql
id |parent_id| name | ---+---------+-----------------+ 1 | 0 |Dropdown One | 2 | 1 |Navigation Item 1| 3 | 1 |Navigation Item 2| 4 | 3 |Navigation Item 1| 5 | 3 |Navigation Item 2| 6 | 1 |Navigation Item 3| 7 | 6 |Navigation Item 1| 8 | 6 |Navigation Item 2| 9 | 6 |Navigation Item 3| 10 | 6 |Navigation Item 4| 11 | 1 |Navigation Item 4| 12 | 1 |Navigation Item 5| 13 | 0 |Dropdown Two | 14 | 13 |Navigation Item 1| 15 | 13 |Navigation Item 2|
возможно, не лучший подход, но вот моя попытка PHP-функции:
function listCategory($parent_id,$level=0) { $query = "SELECT name, id , parent_id FROM category WHERE parent_id=".$parent_id; $res = mysql_query($query) or die($query); $i=1; while (list ($name, $id) = mysql_fetch_row($res)) { if ($level==0) {echo '<li><a href="#" class="menulink">'.$name.'</a></li>';} echo '<li><a href="#" class="menulink">'.$name.'</a></li>'; //echo $name ." i: ".$i." level: ".$level."<br>"; $i++; listCategory($id,$level+1); } } listCategory(0);
Спасибо за любую помощь заранее
function listCategory($parent_id,$level=0) { $query = "SELECT name, id , parent_id FROM category WHERE parent_id=".$parent_id; $res = mysql_query($query) or die($query); if(mysql_num_rows($res) == 0) return; echo '<ul>'; while (list ($name, $id) = mysql_fetch_row($res)) { if ($level==0) { echo '<li><a href="#" class="menulink">'.$name.'</a>'; } else { echo '<li><a href="#">'.$name.'</a>'; } listCategory($id,$level+1); echo '</li>'; } echo '</ul>'; }
Вы не открываете и не закрываете свои теги UL