Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: А как узнать конец рекурсивного вывода?
 
 автор: Doorgen   (14.03.2009 в 12:04)   письмо автору
 
 

Вот недавно решил проблему по выводу каталога через рекурсию.

Но каталог получился ткой громозкий что мне пришлось его прятать под плюсиками. Получилось хорошее дерево, нов чем еда что плюсики ставит везде и не только где они что то раскрывают но и там где не надо.

Как я подумал надо просто узнать когда будет конец рекурсии и там выводить уже другое значение без плюсиков.

База:

id - айди страницы  
id_sub - айди родителя 
name - имя страницы



Каталог (1 уровень) 
-- подкаталог (2 уровень) 
-- +подкаталог (2 уровень) 
---- подкаталог (уже 3тего уровня, у него радитель подкаталог 2рого уровня) 
---- подкаталог(3 уровень) 


Способ выведения:

<? 
function catalogs($id_cat)  
{  
$result=mysql_query("SELECT * FROM page WHERE  sub_page=$id_cat");  
    while(
$r=mysql_fetch_array($result)){  
        echo 
"<blockquote> {$r['page']}";  
            
catalogs($r['id_page']);  
        echo 
"</blockquote>";  
    }  
}  
catalogs(0); 
?>


Скрипт с открывающимся меню я не стал выкладывать... Просто если кто решиться помоч, подскажите как сделать что бы последние подразделы выводились в теге <b>.

Надеюсь не бросите на пол пути ... Заранее очень презнателен.

  Ответить  
 
 автор: Loki   (14.03.2009 в 12:28)   письмо автору
 
   для: Doorgen   (14.03.2009 в 12:04)
 

Таким способом как выводится у Вас, скорее всего не сделаете. Так как у Вас сначала открывается тег, а уже потом проверяется есть ли в нем что-то. Я обычно разделяю построение структуры и отображение. В этом случае управление отображением получается значительно более гибкое.

  Ответить  
 
 автор: Doorgen   (14.03.2009 в 13:36)   письмо автору
 
   для: Loki   (14.03.2009 в 12:28)
 

Который у меня пример это старый ваш :) Там правдо более простая задача была ...


А могли бы продемонстрировать как можно разделить?

  Ответить  
 
 автор: Loki   (14.03.2009 в 14:08)   письмо автору
 
   для: Doorgen   (14.03.2009 в 13:36)
 

Сделать две рекурсивные функции: одна отвечает только за структурирование данных, а вторая - только за вывод данных, подготовленных первой функцией.

  Ответить  
 
 автор: Doorgen   (14.03.2009 в 15:13)   письмо автору
 
   для: Loki   (14.03.2009 в 14:08)
 

Да что то в голове не как не представляетсья в виде кода...

Как вообще такую систему состряпать... Сижу вот час уже голову ломаю ппц... ваще ничего в голову не лезит.

  Ответить  
 
 автор: Doorgen   (20.03.2009 в 12:09)   письмо автору
 
   для: Doorgen   (14.03.2009 в 15:13)
 

Ну что разве ни кто не делал подобных задач?

И ни у кого нету готовых решений?

Или все такие скупые стали?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования