Список (меню) неограниченной вложености

2People

Guest
Список (меню) неограниченной вложености

Еть база для сайта, где странички расположены так;

id-идентификатор
pid-родительский идентификатор
name-имя странички (пример: about )
content-контент

И вот теперь задача выводить раскрывающееся меню неограниченной вложенности.

Для вывода контента URL (www.host/page1/page2/about) разбивается explode.
Из которого берётся последняя "папка" и сравнивается с name

Подскажите пожалуйста идею вывода меню.
 

2People

Guest
Вот что придумал:

URL=0/dir1/dir2/dir3/dir4/.............

Делаем функцию runner($tmp="0") которая выводит все элементы с $Pid=$tmp, и в этой же функции проверяем, не равен ли выводимый элемент = dirX,если равен, то $tmp=dirX и посылае это в функцию runner($tmp).
 

2People

Guest
правда время выполнения растёт в геометрической прогрессии.
Есть ли более экономный способ?
 

Кром

Новичок
Собственно говоря, проблема в построении дерева, я так понимаю? Набери в поиске слово "деревья" и прочитаешь про экономичные способы.
 

Yukko

Новичок
Внимательней читаем весь форум:
http://phpclub.net/talk/showthread.php?s=&threadid=41197&rand=17
http://phpclub.net/talk/showthread.php?s=&threadid=42996&rand=1
 

2People

Guest
Кром
Да проблема в выводе раскрывающегося дерева-меню, при данной выше конструкции базы.
Способом рекурсивного вызова функции получается долго.
 

DenisF

Guest
Используй рекурсивный алгоритм для построения дерева
 
Сверху