| |
|
|
| | Иили дайте ссылку почитать....
А то заделал функцию, она работает (вроде), но всехать в механизм не могу..
function menu($code_group)
{
if($code_group != 0)
{
// Запрос имени группы и родителя
$query = mysql_query("SELECT name, code_parent FROM pict_groups WHERE code_group = $code_group LIMIT 1") or die('Ошибка 1 '.mysql_error());
if(mysql_num_rows($query) > 0) $g = mysql_fetch_assoc($query);
// Делаем строку
return menu($g['code_parent']).'/<a href="'.$_SERVER['PHP_SELF'].'?code_group='.$code_group.'">'.$g['name'].'</a>';
}
}
|
При входе в функцию, проверяется равенство нолю...
Последний запрос всегда дает 0, но тогда где возврат результата из функции?
Но ведь она работает...
На сколько я понимаю, рекурсивная функция это что-то вроде вложенной функции одна в другую...
Но, че-то я все-равно не догоняю как это работает...
Объясните пожалуйста.. а... | |
| |
|
|
| |
|
|
| |
для: tAleks
(14.11.2006 в 22:17)
| | | Функция вызывает сама себя, как только такая возможность исчезает начинается выход из рекурсивного вложения до тех пор пока самая верхняя функция не прекратит работу. | |
| |
|
|
| |
|
|
| |
для: cheops
(15.11.2006 в 00:03)
| | | Вышеприведенная функция возвращает строку пути, типа :
/гуппа1/Группа2/группа3
И каждая группа, является ссылкой. А как сделать так, чтобы псоледняя группа (группа 3), не была ссылкой? | |
| |
|
|
| |
|
|
| |
для: tAleks
(15.11.2006 в 12:27)
| | | Хм... она по сути первая в вызове? Тогда можно передать фунции второй параметр-флаг, который при первом вызове равен true, но при последующих вызовах он равен false.
<?php
function menu($code_group, $no_link=true)
{
if($code_group != 0)
{
// Запрос имени группы и родителя
$query = mysql_query("SELECT name, code_parent FROM pict_groups WHERE code_group = $code_group LIMIT 1") or die('Ошибка 1 '.mysql_error());
if(mysql_num_rows($query) > 0) $g = mysql_fetch_assoc($query);
// Делаем строку
if($no_link)
{
$no_link = false;
return menu($g['code_parent'], $no_link).'/'.$g['name'];
}
else
{
return menu($g['code_parent'], $no_link).'/<a href="'.$_SERVER['PHP_SELF'].'?code_group='.$code_group.'">'.$g['name'].'</a>';
}
}
}
?>
|
| |
| |
|
|