myphp98
Новичок
Добрый день!
Изучаю php не давно. Пытаюсь построить деревья. В БД есть поля id_parent (id родителя), name (название раздела), link (кусок (папка) url-раздела)
Соответственно, путь к подразделу будет складываться, как Раздел родителя + линк самого Подраздела, т.е. /Раздел/Подраздел/
Но как это вывести ума не приложу? Вот сам код по выводу дерева
Изучаю php не давно. Пытаюсь построить деревья. В БД есть поля id_parent (id родителя), name (название раздела), link (кусок (папка) url-раздела)
Соответственно, путь к подразделу будет складываться, как Раздел родителя + линк самого Подраздела, т.е. /Раздел/Подраздел/
Но как это вывести ума не приложу? Вот сам код по выводу дерева
PHP:
$result = mysql_query("SELECT * FROM categories");
if (mysql_num_rows($result) > 0){
$cats = array();
while($cat = mysql_fetch_assoc($result)) {
$cats[$cat['id_parent']][] = $cat;
}
}
function build_tree($cats,$id_parent){
if(is_array($cats) and isset($cats[$id_parent])){
$tree = '<ul>';
foreach($cats[$id_parent] as $key => $cat){
$tree .= '<li>'.$cat['name'].' - '.$cat['link'].' - '.$key;
$tree .= build_tree($cats,$cat['id']);
//unset ($sum);
// Последняя интерация
if ($cat === end($cats[$id_parent])) {
$tree .= 'Goo';
}
$tree .= '</li>';
}
$tree .= '</ul>';
} else return null;
return $tree;
}
echo build_tree($cats,0);