Автор Тема: рекурсивная функция  (Прочитано 3785 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн stanlee

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 215
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
рекурсивная функция
« : 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;
      }

она мне выводит последнее значение
а нуна чтоб выводила все цепочку - чет я встал в тупик

Оффлайн гоша

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 85
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
рекурсивная функция
« Ответ #1 : 29 Марта 2004, 14:30:13 »
static
global

Оффлайн stanlee

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 215
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
рекурсивная функция
« Ответ #2 : 29 Марта 2004, 14:31:04 »
че?
она у меня выводит значения в убывающем порядке - собсно что и нуна
а если прописать как ты говорить global тыры пыры то она будет последовательно выводить

Оффлайн stanlee

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 215
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
рекурсивная функция
« Ответ #3 : 29 Марта 2004, 14:59:57 »
народ помогите плз
или подскажите как пргонять дерево в обратном порядке???
« Последнее редактирование: 29 Марта 2004, 15:14:41 от stanlee »

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
рекурсивная функция
« Ответ #4 : 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.
« Последнее редактирование: 29 Марта 2004, 16:04:39 от ThE0ReTiC »
LJ: Backslashed life (rss)

Оффлайн stanlee

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 215
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
рекурсивная функция
« Ответ #5 : 29 Марта 2004, 16:32:10 »
спасиба братан - даже если ты не местный :)
а насчет багов в скрипте - это ты прикальнулся что ли?

Оффлайн stanlee

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 215
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
рекурсивная функция
« Ответ #6 : 29 Марта 2004, 16:47:20 »
хм CGVictor
но у тебя как бы вставляется текст рядом с текстом
а мне нуна чтобы была последовательность обратная
если в твоем скрипте изменить
$text = $text.$page[\'title\'];
на
$way_menu = "".$page[\'title\'].$text."";
то получится
page1page2
а это не есть гуд

Оффлайн stanlee

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 215
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
рекурсивная функция
« Ответ #7 : 29 Марта 2004, 16:54:31 »
все я ее немного поправил и теперь ништяк

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
рекурсивная функция
« Ответ #8 : 29 Марта 2004, 17:04:24 »
stanlee на кичу инет протянули?
ну, будем исповедоваться?

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
рекурсивная функция
« Ответ #9 : 29 Марта 2004, 20:09:51 »
Цитировать
stanlee:
спасиба братан - даже если ты не местный
а насчет багов в скрипте - это ты прикальнулся что ли?

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

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

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

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28