![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| maxipub |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
есть БД
id ----- parent_id ----- data 1 ........ 0 ................... blabla_1 2 ........ 0 ................... blabla_2 3 ........ 0 ................... blabla_3 4 ........ 1 ................... blabla_4 5 ........ 2 ................... blabla_5 6 ........ 3 ................... blabla_6 7 ........ 1 ................... blabla_7 8 ........ 1 ................... blabla_8 9 ........ 4 ................... blabla_9 нужно выбрать и сформировать данные, чтоб они выглядели вот так: *1 blabla_1 **4 blabla_4 ***9 blabla_9 **7 blabla_7 **8 blabla_8 *2 blabla_2 **5 blabla_5 *3 blabla_3 **6 blabla_6 думаю, суть ясна. единственное не знаю, это выборку так организовывать надо или средствами пхп формировать данные (как?) просьба помочь |
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
maxipub, более красиво использовать Nested Sets
-------------------- Amazing |
|||
|
||||
| maxipub |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
MoLeX, благодарю, интересная библиотека, но я не очень люблю сторонние библиотеки, уж очень они громоздки из-за своей универсальности. К тому же мне придется тогда переделывать структуру не малых таблиц, обновлять их, обновлять скрипты...
Так что хотелось бы получить именно самостоятельное решение, пусть даже не самое оптимальное, там данные обновляются редко - все равно буду кэшировать. Просто не хотелось бы решать задачу "в лоб", должен же быть более красивый способ. |
|||
|
||||
| Noviy |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 29.11.2007 Репутация: нет Всего: нет |
Вот набросал, думаю идея ясна. Формируем многомерный массив и рекурсивно перебираем все элементы, начиная с родительских.
|
|||
|
||||
| SickFxck |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 16.4.2010 Репутация: нет Всего: 1 |
Это метод хранения деревьев, а не библиотека. Он позвляет сделать выборку дерева (поддерева) одним запросом. Тот метод, который ты описал в первом посте (adjacency list) позволяет сделать выборку дерева (или поддерева) только рекурсивным способом. |
|||
|
||||
| maxipub |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
Noviy, tnx, я через рекурсию и сделал, только иначе, без массива и функция отличается. Было просто интересно, можно ли решить данную задачу другим путем.
SickFxck, Nested Sets - это метод хранения деревьев? Ясно. Как бы там ни было, переделывать БД в моем случае смысла не вижу. Это сообщение отредактировал(а) maxipub - 20.4.2010, 10:09 |
|||
|
||||
![]()
|
| Правила форума "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. |