Недавно я написал рекурсивную функцию PHP, которая генерирует навигацию по сайту на основе структуры родитель-ребенок, как это
<ul> <li>parent <li>child</li> </li> </ul>
Код выглядит так
function generateMenu($parent, $level, $db){ $q = $db->query("select id, name FROM menu WHERE parent = '$parent'"); if($level > 0 && $q->num_rows > 0) echo "\n<ul>\n"; while($row=$q->fetch_object()){ echo "<li>"; echo '<a href="?page=' .$page. '">' . $row->name . '</a>'; //display this level's children generateMenu($row->id, $level++, $menu, $db); echo "</li>\n\n"; } if($level > 0 && $q->num_rows > 0) echo "</ul>\n"; }
вfunction generateMenu($parent, $level, $db){ $q = $db->query("select id, name FROM menu WHERE parent = '$parent'"); if($level > 0 && $q->num_rows > 0) echo "\n<ul>\n"; while($row=$q->fetch_object()){ echo "<li>"; echo '<a href="?page=' .$page. '">' . $row->name . '</a>'; //display this level's children generateMenu($row->id, $level++, $menu, $db); echo "</li>\n\n"; } if($level > 0 && $q->num_rows > 0) echo "</ul>\n"; }
Кусок кода выше просто отражает структуру <ul><li>
(как приведенный выше пример) из таблицы db.
Теперь вопросы, как создать меню навигации, как на этом сайте?
Пожалуйста, взгляните на левую боковую панель.
http://www.smithsdetection.com/continuous_vapour_sampling.php
Теперь я думаю, что:
Я не могу понять, как изменить свою функцию, получить выход, как на данном сайте. Пожалуйста помоги.
КСТАТИ
Моя таблица db выглядит так
ПРИМЕЧАНИЕ. Пожалуйста, не публикуйте ответы о дырочных инъекциях sql, я уже позаботился о них: проверка с помощью in_array (если переменная указана в массиве имен столбцов) и прохождение через real_escape.