Intereting Posts
Как получить доступ к пользовательскому атрибуту изображения в list.phtml в Magento Форма: позвольте пользователю выбрать свою страну (раскрывающийся список) и получить валюту (php) WooCommerce Пустая корзина после оплаты с помощью API пользовательского шлюза как отображать папки и подпапки из dir в PHP Наличие безопасности в API-системе | PHP cuRL Программно установить текущую домашнюю CMS / страницу в Magento в PHP В PHPStorm, как я могу сделать работу типа намека, когда у меня есть метод суперкласса, который возвращает другой тип из каждого подкласса Получить цену товара на рынке сообщества Steam с помощью PHP и Regex Почему загрузка изображения завершается ошибкой is_uploaded_file php? «Требуется атрибут If-Match или If-None-Match или атрибут entry etag» Ошибка при попытке обновить контакт в контактах google с помощью Zend Framework Функция Array_map в php с параметром Включение CORS в приложении CakePHP Получите повторные совпадения с preg_match_all () Скрыть и показать div в зависимости от сеанса Как сохранить ресурс сокета php в базе данных?

Функция генератора меню DB DB

Недавно я написал рекурсивную функцию 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

Теперь я думаю, что:

  1. Прежде всего, нужно отозвать всех родителей
  2. Функция должна получать текущий идентификатор страниц в качестве входного значения (например, $ current)
  3. Функция должна эхо до уровня текущих страниц

Я не могу понять, как изменить свою функцию, получить выход, как на данном сайте. Пожалуйста помоги.

КСТАТИ

Моя таблица db выглядит так

введите описание изображения здесь

ПРИМЕЧАНИЕ. Пожалуйста, не публикуйте ответы о дырочных инъекциях sql, я уже позаботился о них: проверка с помощью in_array (если переменная указана в массиве имен столбцов) и прохождение через real_escape.