Эта тема на forum.dklab.ru


H I M E R A: Карта сайта
Доброго времени суток!
Нужно сформировать древовидную карту сайта.
Контент хранится в mysql в таблице вида
PageId | content | parent | title |
-----------------------------------
где:
PageId -- ID стртаницы
content -- контент страницы
parent -- PageId родительской страницы страницы
title -- заголовок страницы

Ну как вывести все в одну ветку понятно

$qwery = mysql_query("SELECT * FROM `pages`") or die(mysql_error());
echo "<ul>";
while($mnu = mysql_fetch_array($qwery ))
{
echo "<li><a href=anyscript.php?id=".$mnu[0].">".$mnu[3]."</a></li>";
}
echo "</ul>";


А вот как этот результат сгруппировать?
Например:

link
sublink
sublink
sublink
link2
sublink2
sublink2
subsublink
subsublink
subsublink
sublink2
sublink2
link3
Г.О.:
Я думаю, волшебное слово "рекурсия" здесь вам поможет.
H I M E R A:
Я думаю, волшебное слово "рекурсия" здесь вам поможет.
Да, слово действительно модное и в тему! С п а с и б о =)
H I M E R A:
Задача решена
Г.О.+1 =)


function PrintMenu($id, $level)
{
echo "<ol>";
$subsections_result = mysql_query("SELECT * FROM `pages` WHERE `parent`=$id");
while($sub_row = mysql_fetch_array($subsections_result))
{
$i=1;
echo "<li>".htmlspecialchars($sub_row['RusName'])."</li>";
if(mysql_num_rows(mysql_query("SELECT `PageId` FROM `pages` WHERE `parent`=".$sub_row['PageId'].""))>0)
PrintMenu($sub_row['PageId'], $level+1);
}
echo "</ol>";
}


Вопрос решен, тему можно закрыть.
lordsc:
мда, вот так решение... надеюсь вы его не будете применять нигде кроме своего компа.

Эта тема на forum.dklab.ru