[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Иерархия категорий
Pulse
Каким образом можно реализовать многоуровневую вложенность категорий? Если все категории и подкатегории хранятся в одной таблице.
Надо примерно такой вид:
Категория 1
Подкатегория 1.1
Подкатегория 1.1.1
Подкатегория 1.1.2
Подкатегория 1.2
Категория 2
... и тд




Спустя 17 минут, 36 секунд (8.11.2010 - 02:47) Guest написал(а):
Pulse

нужно в таблицу добавить три поля
1) айди родителя
2) общее место в иерархии (1.1.1 или 1 или 1.2 и.т.д)
3) позиция в иерархии(0 или 1 или 2 или 3 или 4 и.тд

то есть прежде чем добавлять элемент иерархии в таблицу, 1)узнаем его родителя, затем вручную создаем ему 2)место в иерархии (тут немного поработать придется) и 3) устанавливаем позицию, которая равна позиции его родителя + 1.

вот и все.

Спустя 1 час, 6 минут, 13 секунд (8.11.2010 - 03:53) Pulse написал(а):
Не совсем подходит, условием является неограниченная вложенность. Склоняюсь к рекурсии и 2 полям в таблице (id, parent_id).

Спустя 2 часа, 23 минуты, 56 секунд (8.11.2010 - 06:17) kirik написал(а):

Спустя 3 часа, 22 минуты, 54 секунды (8.11.2010 - 09:40) nugle написал(а):
Сот когдат делал..

<script language=JavaScript>

function show(obj) {

if (document.getElementById(obj).style.display == 'none')
document.getElementById(obj).style.display = 'block';
else document.getElementById(obj).style.display = 'none';

}

</script>

<
span class="menu" onclick="show('sub1')"><a href="../../class.php?class=Журналы">Журналы</a></span>

<
span class="sub" id="sub1" style="display: none">
<
p><a href='http://www.fiesta.com'>Журналы по охране труда</a></p>
<
p><a href='http://www.fiesta.com'>Журналы по пожарной безопасности</a></p>
</
span>

<
span class="menu" onclick="show('sub2')"><a href="../../class.php?class=Знаки безопасности">Знаки безопасности</a></span>

<
span class="sub" id="sub2" style="display: none">
<
p><a href='http://www.fiesta.com'>Запрещающие знаки</a></p>
<
p><a href='http://www.fiesta.com'>Предписывающие знаки</a></p>
<
p><a href='http://www.fiesta.com'>Знаки сервиса</a></p>
</
span>

<
a href="../../class.php?class=Бланки и акты"><div class="dlt">Бланки и акты</div></a></span>
<
a href="../../class.php?class=Удостоверения"><div class="dlt">Удостоверения</div></a></span>
<
div class="dlt">Услуги</div>
<
div class="dlt">Контакты</div>
<
div class="dlt">Гостевая книга</div>

Спустя 21 минута, 25 секунд (8.11.2010 - 10:01) sergeiss написал(а):
Учитывая, что тип БД не указан, могу предполагать, что это может быть любая БД smile.gif Для Постгре решение тут: http://phpforum.ru/index.php?showtopic=31806&hl= - построение "дерева" чисто средствами БД. В ПХП берутся уже готовые данные.
А там же где-то, в теме, есть ссылка на что-то подобное для MySQL.

Спустя 4 часа, 10 минут, 18 секунд (8.11.2010 - 14:11) Pulse написал(а):
Спасибо биг, помогло. Решение надо было для mysql.
Цитата
Тыц
- как раз, то что надо.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.