![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
ramen |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 10.6.2008 Репутация: нет Всего: нет |
Подскажите простую идею как реализовать древовидный тип построения категорий?
При клике на определённый id допустим 3 в базе ищет другие категории с этим id в графе nomains и открывает страницу со списком других категорий у которых как видно из нижнего листинга номер в nomains 10, а как реализовать сохранение основного списка?
|
||||
|
|||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
для хранения древовидных структур данных(к которым относится и изображенное тобою) возможно применить:
- списки смежность(для каждого узла указывается родительский узел; для узлов верхнего уровня указывается 0, NULL или другое значение, которое не может означать существуюший узел) - materialized path("материализованный путь") - для каждого узла хранится список родительских узлов в порядке очередности; для узлов верхнего уровня в поле "списка родителей" просто пусто - nested sets; по этой теме лучше посмотреть одну из большого количества существующих статей; там упор сделан на оптимизацию выбора ветви целиком(узла со всеми предками); вставка и изменение - довольно сложная в сравнении с остальными вариантами структуры операции. |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
я думаю, у него проблема не в хранении, а в интерфейсе.
ramen, все, что надо "сохранить" должно передаваться из браузера. То есть, все открытые категории должны быть в ссылке. |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
Feldmarschall, да, вполне может быть так.
|
|||
|
||||
ramen |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 10.6.2008 Репутация: нет Всего: нет |
нужно именно построить интерфейс, пол дня ломал голову, никак...
|
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
уже сформированный вариант в html есть?
|
|||
|
||||
MixerMsK |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 21.3.2006 Репутация: нет Всего: нет |
Я делаю так.
1. Делаем таблицу: Categories: id[int] name[varchar] parent[int] 2. Логика в том, что если parent=0 - категория корневая. В противном случае в parent лежит id родителя. 3. Код(примерный, т.к. у меня все собрано в классы и объяснять суть самопальных функций смысла не вижу):
|
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
||||
|
||||
IceDragon |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 3.4.2008 Где: Питер Репутация: нет Всего: нет |
Может конечно кое что не рационально делал давно
![]() Создавал дерево так (на битриксе):
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |