| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Помогите реализовать |
| Автор: ramen 29.6.2008, 23:57 | ||||
| Подскажите простую идею как реализовать древовидный тип построения категорий? При клике на определённый id допустим 3 в базе ищет другие категории с этим id в графе nomains и открывает страницу со списком других категорий у которых как видно из нижнего листинга номер в nomains 10, а как реализовать сохранение основного списка?
|
| Автор: skyboy 30.6.2008, 11:15 |
| для хранения древовидных структур данных(к которым относится и изображенное тобою) возможно применить: - списки смежность(для каждого узла указывается родительский узел; для узлов верхнего уровня указывается 0, NULL или другое значение, которое не может означать существуюший узел) - materialized path("материализованный путь") - для каждого узла хранится список родительских узлов в порядке очередности; для узлов верхнего уровня в поле "списка родителей" просто пусто - nested sets; по этой теме лучше посмотреть одну из большого количества существующих статей; там упор сделан на оптимизацию выбора ветви целиком(узла со всеми предками); вставка и изменение - довольно сложная в сравнении с остальными вариантами структуры операции. |
| Автор: Feldmarschall 30.6.2008, 11:51 |
| я думаю, у него проблема не в хранении, а в интерфейсе. ramen, все, что надо "сохранить" должно передаваться из браузера. То есть, все открытые категории должны быть в ссылке. |
| Автор: skyboy 30.6.2008, 11:59 |
| Feldmarschall, да, вполне может быть так. |
| Автор: ramen 30.6.2008, 20:11 |
| нужно именно построить интерфейс, пол дня ломал голову, никак... |
| Автор: skyboy 1.7.2008, 09:20 |
| уже сформированный вариант в html есть? |
| Автор: MixerMsK 1.7.2008, 12:07 | ||
| Я делаю так. 1. Делаем таблицу: Categories: id[int] name[varchar] parent[int] 2. Логика в том, что если parent=0 - категория корневая. В противном случае в parent лежит id родителя. 3. Код(примерный, т.к. у меня все собрано в классы и объяснять суть самопальных функций смысла не вижу):
|
| Автор: Feldmarschall 1.7.2008, 12:12 |
| Вопрос, который задавал автор: |
| Автор: IceDragon 1.7.2008, 16:33 | ||
| Может конечно кое что не рационально делал давно Создавал дерево так (на битриксе):
|