The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Рекурсия, меню. Небольшая проблемка."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [ Отслеживать ]

"Рекурсия, меню. Небольшая проблемка."  
Сообщение от LSDParanoia (ok) on 15-Авг-08, 17:29 
Здравствуйте. Есть функция:

function menu($pid, $conn, $cnt){
$sql=mysql_query("SELECT id_page, title FROM pages WHERE id_parent = ".$pid, $conn);
  while($mas=mysql_fetch_array($sql)){
   echo "<option value='".$mas[0]."'>".(str_repeat("-",$cnt))." ".$mas[1];
   menu($mas[0], $conn, $cnt+=1);
}
}

Она всё делает правильно, но! Найдя какой-либо элемент, и начиная после него писать вложенные в него элементы, список принимает примерно такой вид:

-Родоначальник
-- элемент 1
--- элемент 2
---- элемент 3
----- элемент 4

А нужно так:

-Родоначальник
-- элемент 1
-- элемент 2
-- элемент 3
-- элемент 4

И если у элементов будут свои элементы, то так:

-Родоначальник
-- элемент 1
-- элемент-родоначальник 2
---- элемент 1
---- элемент 2
-- элемент 3
-- элемент 4

Заранее спасибо!

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Рекурсия, меню. Небольшая проблемка."  
Сообщение от LSDParanoia (ok) on 15-Авг-08, 17:36 
Оп, кому надо, вот рабочая функция для вывода таких меню, всё сделал:

function menu($pid, $conn, $cnt){
$sql=mysql_query("SELECT id_page, title FROM pages WHERE id_parent = ".$pid, $conn);
  while($mas=mysql_fetch_array($sql)){
   echo "<option value='".$mas[0]."'>".(str_repeat("-",$cnt))." ".$mas[1];
   menu($mas[0], $conn, $cnt+=1);
   $cnt-=1;
}
}


echo menu(0, $link, 1);

1 - с какого парента начать;
2 - коннект к базе;
3 - ставим 1, и начинается с 1 "-";

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру