ID NAME PARENT_ID
1 Sales
2 Marketing 1
3 sales_optimiztaion.txt 2
5 list.xls 6
6 General data 1
У меня есть иерархическая таблица с данными и функцией, которая подсчитывает, сколько файлов содержит определенную папку и ее подпапки. В этом случае папка Sales содержит два файла: list.xls - sales_optimiztaion.txt. Функция:Ошибка вызова рекурсивной функции PHP
<?
function get_pathS($node) {
global $countSS;
$result = mysql_query('SELECT NAME, PARENT_ID FROM b_disk_object
WHERE ID="'.$node.'";');
$ro = mysql_fetch_array($result);
if ($ro['NAME']!='') {
$path=$ro['NAME'];
if($path=='Sales'){
$countSS++;
$path=get_path($ro['PARENT_ID']);
}
$path=get_pathS($ro['PARENT_ID']);
}
return $countSS;
}>
Функция работает отлично, но я хочу передать 'Sales' в качестве аргумента функции, как это:
<?
function get_pathS($node, $manage) {
global $countSS;
$result = mysql_query('SELECT NAME, PARENT_ID FROM b_disk_object
WHERE ID="'.$node.'";');
$ro = mysql_fetch_array($result);
if ($ro['NAME']!='') {
$path=$ro['NAME'];
if($path==$manage){
$countSS++;
$path=get_path($ro['PARENT_ID']);
}
$path=get_pathS($ro['PARENT_ID']);
}
return $countSS;
} ?>
Но после вызова функции как это:
while ($row = mysql_fetch_array($query)){
$check='Sales';
get_pathS($row['PARENT_ID'], $check);
.......
Не работает. В чем проблема?
Работает ли оно, когда вы предоставляете значение по умолчанию для второго параметра? Например: 'function get_pathS ($ node, $ manage = null)' – jazZRo
Он работает, но возвращает неверный счет – MarciSM
Я объявил $ countSS как глобальную переменную, но что альтернатива этому, потому что я должен вызывать эту функцию несколько раз и каждый раз, когда он добавляет результат к предыдущему результату вызова функции? – MarciSM