Forum Webscript.Ru

Программирование => PHP => Тема начата: stanlee от 29 Марта 2004, 14:26:42

Название: рекурсивная функция
Отправлено: stanlee от 29 Марта 2004, 14:26:42
Народ подскажите плз как загнать данные из рекурсивнйо функции в переменную
от она сама
основана эта гадость на дереве

function section_menu($parent) {
         $section_zapros = "SELECT * FROM `sections` WHERE `id` = \'$parent\'";
         $section_command = @mysql_query($section_zapros) or mysql_error();
         if (mysql_num_rows($section_command) > 0) {
            while ($row = @mysql_fetch_array($section_command)) {
               $way_menu .= " > ".$row[\'name\']."";
               section_menu($row[\'parent\']);
            }
         }
         return $way_menu;
      }

она мне выводит последнее значение
а нуна чтоб выводила все цепочку - чет я встал в тупик
Название: рекурсивная функция
Отправлено: гоша от 29 Марта 2004, 14:30:13
static
global
Название: рекурсивная функция
Отправлено: stanlee от 29 Марта 2004, 14:31:04
че?
она у меня выводит значения в убывающем порядке - собсно что и нуна
а если прописать как ты говорить global тыры пыры то она будет последовательно выводить
Название: рекурсивная функция
Отправлено: stanlee от 29 Марта 2004, 14:59:57
народ помогите плз
или подскажите как пргонять дерево в обратном порядке???
Название: рекурсивная функция
Отправлено: CGVictor от 29 Марта 2004, 15:53:33
Как вариант

var $text;
$text = \'\';

function show_page_title($id) {
GLOBAL $text;
$res=mysql_query("select * from pages where id=".$id);
$page=mysql_fetch_array($res);
if(trim($page[\'parent\'])!="") { //например. Короче, если страница не главная...
  $text = $text.$page[\'title\']; //здесь меняешь, с какой стороны тебе нужно
  show_page_title($page[\'parent\']);
  }
}

В коде возможны неточности и огрехи, но, мне кажется, идею ты поймешь. Если хочешь - допиши еще ветку else.
Название: рекурсивная функция
Отправлено: stanlee от 29 Марта 2004, 16:32:10
спасиба братан - даже если ты не местный :)
а насчет багов в скрипте - это ты прикальнулся что ли?
Название: рекурсивная функция
Отправлено: stanlee от 29 Марта 2004, 16:47:20
хм CGVictor
но у тебя как бы вставляется текст рядом с текстом
а мне нуна чтобы была последовательность обратная
если в твоем скрипте изменить
$text = $text.$page[\'title\'];
на
$way_menu = "".$page[\'title\'].$text."";
то получится
page1page2
а это не есть гуд
Название: рекурсивная функция
Отправлено: stanlee от 29 Марта 2004, 16:54:31
все я ее немного поправил и теперь ништяк
Название: рекурсивная функция
Отправлено: AliMamed от 29 Марта 2004, 17:04:24
stanlee на кичу инет протянули?
Название: рекурсивная функция
Отправлено: CGVictor от 29 Марта 2004, 20:09:51
Цитировать
stanlee:
спасиба братан - даже если ты не местный
а насчет багов в скрипте - это ты прикальнулся что ли?

Не, просто обычно пишу код, не тестя.
Потом есть некоторые, которые его "Копи-Паст" и кричат, что не работает.

Всегда пожалуйста. Обращайся.

[off]-Вчера новую дурь попробовал. "Контрол-V называется!
- Ну и как?
- Вставляет!"[/off]