Суть вопроса такова нужен раскрывающийся многоуровневый древовидный список, получающий данные из БД, уже есть код, за одним лишь исключением, что не настроено раскрывание вот скрин результата:
вот код
<?
include_once("bd.php");
header("Content-Type: text/html; charset=UTF-8");
//Выбираем данные из БД
$result=mysql_query("SELECT * FROM table1");
//Если в базе данных есть записи, формируем массив
if (mysql_num_rows($result) > 0){
$cats = array();
//В цикле формируем массив разделов, ключом будет id родительской категории, а также массив разделов, ключом будет id категории
while($cat = mysql_fetch_assoc($result)){
$cats_ID[$cat['uid']][] = $cat;
$cats[$cat['pid']][$cat['uid']] = $cat;
}
}
function build_tree($cats,$parent_id,$only_parent = false){
if(is_array($cats) and isset($cats[$parent_id])){
$tree = '<ul>';
if($only_parent==false){
foreach($cats[$parent_id] as $cat){
$tree .= '<li>'.$cat['name'].' #'.$cat['uid'];
$tree .= build_tree($cats,$cat['uid']);
$tree .= '</li>';
}
}elseif(is_numeric($only_parent)){
$cat = $cats[$parent_id][$only_parent];
$tree .= '<li>'.$cat['name'].' #'.$cat['uid'];
$tree .= build_tree($cats,$cat['uid']);
$tree .= '</li>';
}
$tree .= '</ul>';
}
else return null;
return $tree;
}
echo build_tree($cats,0);
?>