|
|
|
|
|
для: golovdinov
(28.02.2007 в 21:20)
| | Структура таблицы такая:
CREATE TABLE `table` (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`parent` INT( 10 ) NOT NULL ,
`name` VARCHAR( 255 ) NOT NULL );
|
Корневые разделы будут иметь parent=0
Подраздел добавляется к любому разделу путем присвоения столбцу parent подраздела значения id родительского раздела.
Затем все это можно выбрать в массив:
<?php
$output = array();
$result = mysql_query("SELECT * FROM `table`");
while($row = mysql_fetch_assoc($result))
{
$i = $row['id'];
$p = $row['parent'];
$output[$p][$i] = $row['name'];
}
?>
|
И вывести:
<?php
build_tree($output, 0);
function build_tree($arr, $root, $prefix='--')
{
foreach($arr[$root] as $key=>$value)
{
echo $prefix.$value.'<br>';
if(isset($arr[$key])) build_tree($arr, $key, $prefix.'--');
}
}
?>
|
| |
|
|
|
|
|
|
| Подскажите пожалуйста как реализовать следующий прием:
Есть таблица в БД с разделами, и каждому разделу можно назначить подразделы, а им в свою очередь свои подразделы и т.д. без ограничений. Как реализовать вывод всех подразделов следующим образом?
Раздел
- подраздел
-- подраздел
-- подраздел
- подраздел
Раздел
....
|
| |
|
|
|
|