Что не так с этой рекурсивной функцией PHP?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Что не так с этой рекурсивной функцией PHP?

Сообщение Anonymous »

У меня есть таблица базы данных со следующими данными:

Код: Выделить всё

categoryId    categoryName    parentCategory
men           Men             root
women         Women           root
shoes         Shoes           root
mensshirts    Men's Shirts    men
menspants     Men's Pants     men
mensjeans     Men's Jeans     men
mensvests     Men's Vests     men
womensshirts  Women's Shirts  women
womenpants    Women's Pants   women
Я использую рекурсивную функцию для печати многоуровневого меню. Код приведен ниже.

Код: Выделить всё

function display_children($parent) {
global $connect;
$query = "SELECT categoryId, categoryName FROM categories WHERE parentCategory='$parent'";
$result = mysqli_query($connect,$query);

if ( $result === false ) {
printf("Query Error: %s\n", mysqli_error($connect));
exit();
}

echo "[list]";
while ($row = mysqli_fetch_assoc($result)) {
extract($row);
echo "[*]".$categoryName."";
display_children($categoryId);
}
echo "[/list]";

mysqli_close($connect);
}

display_children('root');
В результате я распечатываю на экране следующее:
  • Мужские

    Мужские рубашки
  • Мужские брюки
  • Мужские джинсы
  • Мужские Жилеты
[*]Женщины
[*]Обувь


Рекурсивная функция не распечатывает остальные подкатегории, и я не знаю, почему. Мое тестирование/отладка подтвердило, что после того, как mensvests передается в качестве идентификатора категории в функцию, следующим переданным идентификатором категории являются женщины, которые должны найти последние подкатегории. Есть идеи?

Подробнее здесь: https://stackoverflow.com/questions/136 ... e-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»