Я хочу создать свое раскрывающееся меню из запроса mysql, но у меня возникают проблемы с подпозициями.
Моя основная таблица:
NavigationID ParentID Name Url 1 1 Home home 2 2 About about 3 3 Products products 4 3 Category1 # 5 3 Category2 # 6 4 Product1 # 7 5 Product2 #
Мой простой MySQL Query и добавление в массив:
class Navigation{ private $data; public function __construct($par){ if(is_array($par)) $this->data = $par; } public function __toString(){ return '<li><a href="'.$this->data['Url'].'">'.$this->data['Name'].'</a></li>'; } } $query = mysql_query("SELECT * FROM Navigation n") or die(mysql_error()); $num = mysql_num_rows($query); $menuitems = array(); while($row = mysql_fetch_assoc($query)){ $menuitems[] = new Navigation($row); } echo '<div id="nav"><ul>'; foreach($menuitems as $item){ echo $item; } echo '</ul></div>';
Результатом этого является:
<div id="nav"><ul> <li><a href="home">Home</a></li> <li><a href="about">About</a></li> <li><a href="products">Products</a></li> <li><a href="#">Category1</a></li> <li><a href="#">Category2</a></li> <li><a href="#">Product1</a></li> <li><a href="#">Product2</a></li> </ul></div>
Но я бы ДЕЙСТВИТЕЛЬНО хотел:
<div id="nav"><ul> <li><a href="home">Home</a></li> <li><a href="about">About</a></li> <li><a href="products">Products</a> <ul> <li><a href="#">Category1</a> <ul> <li><a href="#">Product1</a></li> </ul> </li> <li><a href="#">Category2</a> <ul> <li><a href="#">Product2</a></li> </ul> </li> </ul> </li> </ul></div>
Как я могу достичь этого результата? Я пробовал много других примеров, но никто мне не помогает. Возможно, я не искал правильных вещей.