Вывод меню без класса

novi4ok

Новичок
Таблица меню в базе следующая:
| id | name | parent_id | prev_id | alias_name
| 1 | name1 | NULL | NULL | alias1
| 2 | name2 | 1 | NULL | alias2
| 3 | name3 | NULL | 2 | alias3
| 4 | name4 | 3 | NULL | alias4
| 5 | name5 | NULL | 6 | alias5
| 6 | name6 | NULL | 4 | alias6
| 7 | name7 | NULL | 5 | alias7

Меню многоуровневое.
Нужно вывести всё меню с HTML:
<ul>
<li></li>
<li>
<ul>
<li></li>
<li></li>
</ul>
</li>
<li></li>
</ul>
и т.д. в соответствии с подчинённостью.
И так же вывести только корневых родителей, с возможность потом вывода списка заголовков подчинённых пунктов.

Гуглил. Есть темы подобные, но там прописаны ассоциации только между id и parent. Здесь же добавлена ещё одна зависимость.
Подскажите, как решить эту задачу? Может есть какой то путь без классов и функций, перебором с несколькими SQL-запросами.
Таблица намного больше, в ней таким образом прописано пока до 4-х уровней.

Спасибо.
 

sakon

П..и.н..ок
Если не секрет зачем " добавлена ещё одна зависимость"?
 

novi4ok

Новичок
Во-во. Вот теперь не могу родить вывод.
А по идее нужно:
1. Вывод полного меню
2. Вывод короткого меню (первых родителей)
3. Вывод списка со ссылками на страницы деток этих родителей.

И как быть? :(
 

Redjik

Джедай-мастер
Ну тут задачка по комбинаторике, я не знаю как тебе помочь... решение за тебя писать я точно не хочу =)
Попробуй, попиши код, повыкладывай - а там уже направлю...
 

novi4ok

Новичок
Ну тут задачка по комбинаторике, я не знаю как тебе помочь... решение за тебя писать я точно не хочу =)
Попробуй, попиши код, повыкладывай - а там уже направлю...
В этом и затык. Не представляю с чего начать и что к чему привязывать. Т.е. не могу, хотя бы умозрительно, придти к какой то логике. Хоть кто-нибудь пнул бы, что и к чему. :) А то на полном распутье.
 

Фанат

oncle terrible
Команда форума
http://phpclub.ru/talk/threads/вывод-дерева-и-простой-шаблон.39707/
Там, правда, не хватает кода, формирующего массив, но могу поискать, если надо.
Ну или рукурсия
И так же вывести только корневых родителей, с возможность потом вывода списка заголовков подчинённых пунктов.
а это-то совсем примитивно
 

novi4ok

Новичок
http://phpclub.ru/talk/threads/вывод-дерева-и-простой-шаблон.39707/
Там, правда, не хватает кода, формирующего массив, но могу поискать, если надо.
Ну или рукурсия
Пасиб. Надо опоробовать.
а это-то совсем примитивно
И в чём примитив? Как их выцарапать, если ассоциацию нужно ловить по parent и prev?
 

Фанат

oncle terrible
Команда форума
Вообще, раздели эти задачы - "выцарапать" и вывести
они никак между собой не связаны

какая проблем выцарапать корневых?
какая проблема вывести всех детей одного родителя?
 

no_santa

Снегур
Судя по всему, объем данных в меню невелик. Исходя из этого решение навскидку:

1. Получить все данные одним запросом
2. В цикле пересчитать уровень (а вы знаете, что это можно сделать без рекурсии?)
3. Выводите данные в требуемом формате (а вы знаете, что и это можно сделать без рекурсии?)
 

novi4ok

Новичок
Судя по всему, объем данных в меню невелик. Исходя из этого решение навскидку:

1. Получить все данные одним запросом
2. В цикле пересчитать уровень (а вы знаете, что это можно сделать без рекурсии?)
3. Выводите данные в требуемом формате (а вы знаете, что и это можно сделать без рекурсии?)
C первым пунктом вопросов нет.
А вот 2 и 3. Ну и как?
Можно хоть кусочек кода?
 

novi4ok

Новичок
Берем школьный учебник по ОИВТ...
no_santa, я понимаю, что здесь все собрались очень умные, опытные и мудрые. Это неплохо...
Но можно без тупых посылов на поисковики и в учебники?
А как то на собственном примере?
Кучочек кода, что бы было понятно, как.

Заранее спасибо.
 

Фанат

oncle terrible
Команда форума
какая проблем выцарапать корневых?
какая проблема вывести всех детей одного родителя?
что ты уже пробовал сам?
 

Фанат

oncle terrible
Команда форума
давай начнем с корневых.
чем они отличаются от всех остальных?
 

novi4ok

Новичок
в том то и дело, что ничем.
если по таблице, то id 1 и 3 корневые. дальше всё ползёт. Точных признаков нет.
 
Сверху