Автор Тема: многоуровневая навигация  (Прочитано 4764 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн stanlee

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 215
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
многоуровневая навигация
« : 01 Июля 2004, 15:06:56 »
Народ подскажите плз а то уже запутался совсем

как сделать многоуровневую навигацию а точнее как ее вывести правильно
допусти у нас есть простейшее дерево ссылок
(номер ссылка родитель)
1 ссылка1 0
2 ссылка2 0
--3 ссылка3 2
--4 ссылка4 2
----5 ссылка5 4
----6 ссылка6 4
--7 ссылка5 2
8 ссылка8 0
9 ссылка9 0

все вроде просто но как сделать так чтобы прогнать все это уровень - в данном примере я реализовал 3 уровня
так вот как сделать так чтоб например мона было вывести сразу уровень 3

выведет
5 ссылка5 4
6 ссылка6 4

можно сделать при помощь функции которая будет по родителю выводить - но мне нужно указывать именно уровень
папример printlinks(3)

????

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
многоуровневая навигация
« Ответ #1 : 01 Июля 2004, 16:05:25 »
где тебе надо хранить эту навигацию ?
(массив, текстовый файл, XML, СУБД ?)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн stanlee

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 215
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
многоуровневая навигация
« Ответ #2 : 01 Июля 2004, 16:09:09 »
СУБД

тока не приводите примеры на классах - терпеть их не могу

Оффлайн stanlee

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 215
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
многоуровневая навигация
« Ответ #3 : 01 Июля 2004, 16:29:18 »
Я намутил что то подобное но работает не стабильно
вот хочу у вас поспрошать может ваша идея будет интереснее

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
многоуровневая навигация
« Ответ #4 : 01 Июля 2004, 17:49:24 »
stanlee
для реализации моей идеи используется готовый класс (реализующий метод Nested Sets), поэтому она тебе интересна не будет
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Neter

  • Жустер
  • Старожил
  • ****
  • Сообщений: 324
  • +0/-0
  • 2
    • Просмотр профиля
многоуровневая навигация
« Ответ #5 : 01 Июля 2004, 20:00:12 »
stanlee Напряги мозги, халявщик, это не сложно.
Если тяжело думается представь как оно должно работать, пойми алгоритм. Если тяжело представить нарисуй на бумажке, потом перепиши в код..

подскажу: рекурсия
Мне тормоз послужил толчком...

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
многоуровневая навигация
« Ответ #6 : 01 Июля 2004, 22:14:34 »
Самая простая для понимания реализация и одна из самых ресурсоёмких - через parent id.
Структура таблицы:
int id, int parent_id, varchar title, ... <всё остальное, что тебе надо, типа урла>
В поле parent_id хранится id узла, родительского по отношению к текущему.
В поле parent_id корневого узла стоит ноль или минус единица - кому как больше нравится.
Из базы данных дерево формируется рекурсивно, как и подсказал Neter.
По этому принципу (с небольшими дополнениями) строится иерархия форумов во многих форумных движках, включая и этот.
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
многоуровневая навигация
« Ответ #7 : 02 Июля 2004, 11:31:53 »
Макс
Цитировать
для реализации моей идеи используется готовый класс (реализующий метод Nested Sets)


А кто мешает использовать метод Nested Sets без класса? Повязку на лоб, что бы грабли не больно били и вперед! ;)

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
многоуровневая навигация
« Ответ #8 : 02 Июля 2004, 12:09:18 »
Phoinix
некоторых людей проще научить пользоваться классами, чем объяснить какие запросы надо делать при добавлении/удалении/перемещении узлов (я с перемещением сам пару дней просидел, пока точные формулы вычислил)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн stanlee

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 215
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
многоуровневая навигация
« Ответ #9 : 02 Июля 2004, 14:15:53 »
во во во я с этим Nested Sets еб..ся не хочу - там гемор при перемещениях и добавлениях такой что я лучше пойду погуляю
ну вроде я что то намутил так что херьте этот топик

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28