![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Vardoulacha |
|
||||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: 7 Всего: 8 |
Итак деревья, вот такой исходный массив получается из базы, с сортировкой по полю position
это поле parent
остальные понятны по названию вот код который за раз строит упорядоченное дерево и выводит его
и вот результат работы
и собственно никак не могу придумать каким макаром сделать вот такую красивую нумерацию
понимаю что нужно вроде как-то в функцию сделать сбор всех родителей в переменную path но вот как это собрать не понимаю, помогите плиз |
||||||||||
|
|||||||||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Четвертым параметром в build_tree передавай текущий номер -префикс, который будет добавляться всем чилдам. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
-------------------- Amazing |
|||
|
||||
| Vardoulacha |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: 7 Всего: 8 |
MoLeX, да я в первую очередь прочитал эту тему, но там такой кавардак, и в основном сводится к постройке массива дерева в переменной
ну это да, тоже думал про префиксы и передавать их параметром, сейчас ухожу не будет компа под рукой, завтра буду пробовать аттачить префикс мдааа ))) на запрос в гугле "php красивая нумерация дерева" вылазит эта моя тема )) вот родил вот такой код
теперь результат выглядит так
теперь осталось вывернуть мозг наизнанку и родить откат пути Это сообщение отредактировал(а) Vardoulacha - 9.3.2012, 14:43 |
||||||
|
|||||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
-------------------- Amazing |
|||
|
||||
| Vardoulacha |
|
||||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: 7 Всего: 8 |
ksnk, блииин, не может быть что всё так просто )) но радость была короткой
вот при таком коде, результат правильный, но как только добавляю ещё один уровень вложенности, всё ломается
если к начальному массиву добавить это
результат будет такой
нутром понимаю что дело тут в параметре position который отдельно вставляется, а должен тоже идти с путем как-то, вот сижу смотрю на код и вижу фигу (( а и ещё вот вижу что проблема немного глубже, сейчас структура легкая, а если дерево усложнить и добавить веток то проблема нумерации встанет более явно, сейчас она по порядку идет ветвление и поэтому примерно даже работает, на более низких только заметно, а если взять массив такой
то результат будет уже вот такой
Добавлено через 7 минут и 5 секунд MoLeX, что-то мне не нравится nested sets из-за лишних данных в базе, в данном коде только id да parent_id единственная проблема с красивую нумерацию построить Это сообщение отредактировал(а) Vardoulacha - 9.3.2012, 17:28 |
||||||||||
|
|||||||||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
левый и правый ключ еще добавляется. зато очень удобно выводить и все просто. надо только разобраться -------------------- Amazing |
|||
|
||||
| Vardoulacha |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: 7 Всего: 8 |
ksnk, неужели всё так просто, хотя я бы никогда не догадался, спасибо огромное, вот и появился в интернете полный пример по сбору дерева из базы и по его красивому выводу
MoLeX, ну вот из-за левого и правого ключа как и лишние данные, объем данных в жертву удобству |
|||
|
||||
| gta4kv |
|
|||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: 21 Всего: 91 |
Объем данных? Вы о двух столбцах с INT'выми значениями? Ну-ну..
|
|||
|
||||
![]()
|
| Правила форума "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. |