Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Создание многоуровневого меню (http://forum.oszone.net/showthread.php?t=68554)

Coutty 15-07-2006 11:21 461649

Создание многоуровневого меню
 
ТЗ: нужно сделать меню, как в справках .chm - неограниченная многоуровневость (хотя, пожалуй, пяти уровней хватит); отображение и папок, и документов.
Инструменты: PHP, MySQL
Желательно, чтобы вся справка со структурой содержалась в одной таблице.
Есть только такой вариант:
id - int - идентификатор документа или папки
level - smallint - уровень вложенности документа или папки
parent - int - идентификатор родительской папки
type - smallint - 1, если документ; 0, если папка
title - text - название документа или папки
content - text - содержание документа; пусто, если папка

Но с такой структурой для документа пятого уровня, например, придётся запрашивать:
1. Структуру первого уровня
2. Структуру второго уровня, содержащую документ
3. Структуру третьего уровня, содержащую документ
4. Структуру четвёртого уровня, содержащую документ
5. Структуру пятого уровня, содержащую документ
6. Сам документ
Затем нужно обработать всё это таким образом, чтобы структуры были расположены именно в том месте, где надо, а не в конце меню, например.
Но такой скрипт займёт немало процессорного времени. Как оптимизировать?
В виде статичного HTML - не оптимально. Меню может получится в несколько раз больше самого документа.

vadimiron 15-07-2006 15:15 461693

Люди для этого вроде используют деревья

Coutty 15-07-2006 15:26 461695

vadimiron, каким образом можно сохранить древовидную структуру в БД?
Или надо использовать текстовый файл? Может xml?

vadimiron 15-07-2006 17:33 461725

Могу только пару статей посоветовать, дальше поиск в инете поможет:
здесь
ещё одно интересное решение
более старая статья но интересная


Время: 18:54.

Время: 18:54.
© OSzone.net 2001-