predator
web designer
Вложенные массивы и навигация по базе данных
PHP:
// Имеем древообразную базу данных - цель сгенерить меню вида
// val1
// val2
// val3
// val1
// val2
// val3
// val4
// val4
// val5
// для этого:
// получили путь от кликнутого узла - к родоначальнику
$result = db_query("SELECT id, lft, rgt, level FROM articles WHERE $article_info[lft] BETWEEN lft AND rgt ORDER BY level ASC");
// получаем детишек всех узлов - вплоть до детей родоначальника и пишем их в массив
while($row = mysql_fetch_array($result)) {
$level_plus = $row['level']+1;
$child = db_query("SELECT id, title FROM articles WHERE lft BETWEEN $row[lft] AND $row[rgt] AND level=$level_plus");
// проблема в генерации вложенного массива с перечнем пунктов меню
// раньше с вложенными не работал вот наваял, но видимо не правильно
// помогите кто сможет
while($str = mysql_fetch_array($child)) {
if(!isset($id_pred))$id_pred=$row['id'];
if($str['id']==$id_pred){
$arr= array($str['id'] => $arr_pred);}
else
$arr= array($str['id'] => $str['title']);
}
$id_pred=$row['id'];
$arr_pred=$arr;
}
// выводим массив
while (list($key, $val) = each($arr)) {
echo("<a href=\"index.phtml?type=20&id=$key\">$val</a>");
}
// запросы к базе рабочие, проверено, их можно не обсуждать - главное в массивах разобраться