|
|
|
| Есть таблица:
id - id элемента
parent_id - id родителя
title - название раздела
level - уровень вложенности
Мне нужно вывести данные из этой таблицы таким образом:
Раздел1
-подраздел1_1
-подраздел1_2
-подраздел1_3
----подподраздел_1_3_1
----подподраздел_1_3_2
----подподраздел_1_3_3
-подраздел1_4
----подподраздел_1_4_1
----подподраздел_1_4_2
-подраздел1_5
-подраздел1_6
Раздел2
Раздел3
где 1_1 - это индексы.
Например 2_3_3 - это значит, что подраздел с таким индексом является 3-им по счету из всех подразделов раздела номер 3, который в свою очередь является 2-ым по счету из всех разделов. | |
|
|
|
|
|
|
|
для: off
(13.01.2006 в 20:16)
| | По быстрому накатал, не когда проверять, одно условие: элементы с уровнем 1 (ну или 0, смотря от чего осчет :) ) должны иметь parent_id = 0 и поле level можно убрать. Функция рекурсивно вызывает сама себя и должна выводить вашедерево:
<?
function Show($id,$index,$level)
{
$query = mysql_query("SELECT * FROM tbl WHERE parent_id = '$id'");
if(mysql_num_rows($query) > 0)
{
$i = 1;
while($fetch = mysql_fetch_array($query))
{
echo str_repeat("-",$level);
echo $fetch['title'];
echo $index."_$i<br>";
$i++;
Show($fetch['id'],$index."_$i",$level+1);
}
}
}
// Вызываем функцию
Show(0,"",0);
?>
|
| |
|
|
|
|
|
|
|
для: Евгений Петров
(13.01.2006 в 20:44)
| | Функция конечно сбоит, но я ее поправил.
ОГРОМНОЕ СПАСИБО ЭТОМУ ФОРУМУ, ЗА ТО ЧТО НА НЕМ ЕСТЬ ТАКИЕ ХОРОШИЕ ЛЮДИ!!!
Спрашивал и на других форумах, но помогли мне только здесь! | |
|
|
|