| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Базы Данных > Построение дерева иерархии с помощью PHP / MySQL |
| Автор: DezmASter 22.4.2007, 15:05 | ||||
| Рассмотрим пример построения дерева иерархии (в развернутом виде) на основе информации из базы данных с помощью PHP и MySQL. Ключ к решению данной задачи - использование рекурсивной функции. Иерархия разделов будет храниться в таблице базы данных MySQL. Ниже на скриншоте показана данная таблица (catalogue): ![]() * id - первичный ключ таблицы * pid - id родительского раздела Далее напишем следующий PHP-скрипт: 1. Файл dbopen.php (открывает соединение с MySQL)
2. Файл index.php (основной скрипт)
Всю работу выполняет рекурсивная функция ShowTree(). Ниже на скриншоте показан пример работы index.php: ![]() |
| Автор: Denwer 24.6.2007, 23:06 |
| если я нахожусь на "разделе 1", как сделать чтобы он не был ссылкой? А просто текст |
| Автор: DioNiR 6.7.2007, 22:20 |
| не правильный подход. Если много категорий то получится много запросов. |
| Автор: SelenIT 7.7.2007, 21:07 | ||
| DioNiR абсолютно прав. Для построения всего дерева предложенный подход не годится. Сам видел, как уже с несколькими сотнями ветвей дерево по этой схеме строилось секунд 20. Вот вариант, как это можно сделать одним запросом, с помощью вспомогательного массива $tree:
|
| Автор: DioNiR 20.3.2008, 21:01 | ||||
а какой смысол в твоём коде несёт переменная $lvl? |