![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| akil |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 29.5.2008 Репутация: нет Всего: нет |
Привет.
Есть таблица в БД MySQL
надо что бы получилась вот такая вложеность: - Страница 1 - Под страница 1_1 - Под страница 1_2 - Под под страница 1_2_1 - Под под страница 1_2_2 - Под страница 1_3 - Страница 2 - Страница 3 - Под страница 3_1 - Под под страница 3_1_1 не могу догнать как сделать... |
|||
|
||||
| godvinn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 4.4.2008 Где: possibility of mo ving to Kyiv Репутация: 1 Всего: 1 |
тебе просто надо реализовать обход дерева
- почитай вот это http://forum.vingrad.ru/forum/topic-206748.html |
|||
|
||||
| akil |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 29.5.2008 Репутация: нет Всего: нет |
*SORRY*
не получается |
|||
|
||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
akil, у тебя есть указатель на перент его и используй
береш извлекаеш все что с перентом 0, побежал по ним в цикле, но прежде чем переходить к следующиму элементу, проверяешь нет ли у текушиго потомков, и т.д. Все это называется рекурсивный обход дерева. |
|||
|
||||
| akil |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 29.5.2008 Репутация: нет Всего: нет |
что-то знаний не хватает(((
|
|||
|
||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
akil, ну вот смотри, допустим у меня есть такая таблица с меню
id | name | parentId 1 | Первый | 0 2 | Второй | 1 3 | Третий | 0 ..... Тоесть у нас есть уникальный идентификатор, название и родитель пункта меню. Создаем функцию которая рисует дерево drawTree($parentId) в качестве параметра в нее передаем идетентификатор родителя. В самом начале передаем туда ноль. Что делает эта функция? Она извлекает из БД данные, а именно всю информацию про пункты у которых parentId = $parentId передоному в функцию, далее определяем вернул ли нам запрос к БД информацию о пунтах у которых родитель соответсвует номеру переданому в функцию. Если информация получина то мы опепрделяем количество информации(сколько пунктов меню в таблице из перввои), после чего прогоняем результат запроса через цикл. В цикле мы печатаем Пункты по очереди и за одно на каждом шаге запускаем функцию drawTree() только уже в качестве параметра передаем туда не 0 а идентификатор только что выведеного на экран пункта. Вот и весь алгоритм. Желаю удачи в реализации. |
|||
|
||||
![]()
|
| Правила форума "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. |