![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
WebUser |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 15.4.2007 Репутация: нет Всего: нет |
имеется рекурсивная функция getListing(), которой передаётся массив разделов из БД в таком формате
всё работает отлично, строит карту как надо, вот пример чтобы построить всё карту getListing($arr, 0, 0)
вопрос, как сделать если нужно вывести не всё карту а только одну ветку, в примеру если укажем getListing($arr, 8, 0) где 8 это ID раздела mustang нужно чтобы получилась такая ветка
как такое сделать? переискал во всём инете, везде примеры генерировании всей ветки. надо получить только одну ветку, остальные не трогать, вот как тут на примере, при выборе раздела "Компас" http://www.satsite.ru/category/cat-43/ |
||||||||
|
|||||||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
WebUser, наверное стоило parent'ов назвать childs' ами
![]() А так - все просто - сначала пробегаем по всем элементам $data и приписываем во все веточки адрес настоящего парента. Потом, начиная с текущего элемента приписываем всем "непосредственным" родителям какой-нибудь флажек - "selected", к примеру. Можно совместить эту пару проходов в одну рекурсивную акцию, но объяснять будет сложнее ;) А вот потом уже выводим это дерево этой самой функцией getListing. Вот только идем "вниз" только для веток, отмесенных флагом "selected". Как-то так... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
WebUser |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 15.4.2007 Репутация: нет Всего: нет |
было бы не плохо посмотреть пример, если это возможно;)
то как я понимаю, можно как то сделать так
тоесть если мы знаем ID раздела, то данной функцией мы определяем ID родителей, снизу Вверх до самого корня. Затем строим массив всей ветки относящимся родителям, и отдельный массив только разделов первого уровня, и затем всё это совмещаем, но вот как это сделать я пока не силён, может кто поможет? Это сообщение отредактировал(а) WebUser - 4.5.2010, 17:15 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |