imho.ws |
![]() |
![]() |
![]() |
# 1 |
Newbie
Регистрация: 31.05.2003
Сообщения: 9
![]() |
![]()
Есть таблица категорий category с колонками category_id INT, name VARCHAR(255) и parent INT.
Parent ссылается на category_id родительской категории, -1 означает, что эта катеория корневая.. Требуется построить дерево так, чтобы оно иерархически отображало структуру категорий. К примеру: TABLE Category (category_id) - (name) - (parent) 0 - Новости - (-1) 1 - Категория новостей 1 - 0 2 - Категория новостей 2 - 0 3 - Файлы - (-1) 4 - Категория файлов 1 - 3 5 - Категория файлов 2 - 3 6 - Подкатегория новостей - 1 7 - Подкатегория файлов - 5 Должно отображаться так: Новости - Категория новостей 1 - - Подкатегория новостей - Категория новостей 2 Файлы - Категория файлов 1 - Категория файлов 2 - - Подкатегория файлов Помогите с алгоритмом обработки... |
![]() |
![]() |
# 2 |
Guest
Сообщения: n/a
|
А какой тут вариант кроме рекурсии?
Добавлено через 6 минут: если у тебя база конечно мускул.. function getTree($parent=-1, $link){ result = mysql_query('select from category where parent = '.$parent, $link); for($i=0; $i<mysql_numRows($result); $i++){ echo mysql_result($i, 'name', $result); getTree(mysql_result($i, 'id', $result), $link) } } Вообще стоит подумать - каких запросов выполняется больше на выборку или изменение и взависимости от этого выбрать структуру базы - ибо при большом дереве это все будет долго выполняться |
![]() |
# 7 |
Newbie
Регистрация: 31.05.2003
Сообщения: 9
![]() |
medved2002 V0iD
Мне все равно все данные потом в массив загонять, т.к. мне сразу вывод делать - не вариант. На выборку намного больше запросов будет. Да, насчет php_catalog - увы, нет. Это я сам пытаюсь написать CMS, для админской панели нужно... |
![]() |
![]() |
# 8 |
Guest
Сообщения: n/a
|
Вот этот вариант - для быстрая выборка, но долгое добавление
http://searchdatabase.techtarget.com...537290,00.html Добавлено через 1 минуту: Посвещенно тойже проблеме с кодами на ПХП http://www.sitepoint.com/article/1105/ Добавлено через 1 минуту: До кучи http://www.evolt.org/article/Four_wa...047/index.html |