| |
|
|
| | Есть каталог с бесконечной вложенностью. Я извлекаю все группы и загоняю данные в массив.:
// Извлекаем все группы
$sql = "SELECT name, code_group, code_parent, showhide FROM cms_groups";
$query = mysql_query($sql);
// если запрос не сделан, или сток извлечено < 1 возвращаем FALSE
if(!$query || mysql_num_rows($query) < 1) return FALSE;
// Запихиваем все в массив
while ($k = mysql_fetch_assoc($query)) { $g[@++$i] = $k; }
|
Получился примерно такой масив:
$g => Array
(
[1] => Array
(
[name] => Группа 2
[code_group] => 16
[code_parent] => 15
[showhide] => show
)
[2] => Array
(
[name] => Группа 3
[code_group] => 17
[code_parent] => 16
[showhide] => show
)
[3] => Array
(
[name] => Группа 4
[code_group] => 18
[code_parent] => 17
[showhide] => show
)
[4] => Array
(
[name] => Группа 5
[code_group] => 19
[code_parent] => 18
[showhide] => show
)
);
|
Как теперь из него выстроить путь?
К примеру передан параметр code_group=19. нужно построить путь от этой группы до корня.
Как это сделать? | |
| |
|
|
| |
|
|
| |
для: tAleks
(11.12.2006 в 16:05)
| | | Такие задачи удобнее решать рекурсивным спуском, выполняя соответствующий запрос на каждом уровне рекурсии. | |
| |
|
|
| |
|
|
| |
для: cheops
(11.12.2006 в 18:16)
| | | А много запросов не "вредно"?
Не нагружает ли это сервер? | |
| |
|
|
| |
|
|
| |
для: tAleks
(12.12.2006 в 13:10)
| | | Вредно и нагружает, но не сразу... например, этот форум построен именно на рекурсивной основе, т.е. отступы вычисляются путём рекурсивного спуска - торможение в первую очередь созадют многотабличные запросы (формирование списка тем, подсчёт количества новых сообщений) - поиск по 40Мб таблице сообщений не приводит к заметному снижению скорости отображения самой темы. | |
| |
|
|