Проблема с функцией PHP

Попытка создать db-ведомое меню, основанное на родительской-дочерней структуре. Значения родительских столбцов всех корневых элементов равны 0. Постоянное отслеживание следующих ошибок

Undefined offset: 0,1,2 on line list($id, $parent, $name) = $results; Undefined index on line array_key_exists() expects exactly 2 parameters, 1 given on line if (!array_key_exists($tree[$parent]['children'][$id])) { Warning: array_key_exists() expects exactly 2 parameters, 1 given on line if (!array_key_exists($tree[$parent]['children'][$id])) { 

PHP-код

 <?php function generateMenu($parent, $level, $menu, $utype) { global $db; $tree = array(); $stmt = $db->prepare("select id, parent, name FROM navigation WHERE menu=? AND user_type=?") or die($db->error); $stmt->bind_param("ii", $menu, $utype) or die($stmt->error); $stmt->execute() or die($stmt->error); $stmt->store_result(); $meta = $stmt->result_metadata(); $bindResult = array(); while ($columnName = $meta->fetch_field()) { $bindResult[] = &$results[$columnName->name]; } call_user_func_array(array($stmt, 'bind_result'), $bindResult); while ($stmt->fetch()) { list($id, $parent, $name) = $results; $tree[$id] = array('name' => $name, 'children' => array(), 'parent' => $parent); if (!array_key_exists($id, $tree[$parent]['children'])) { $tree[$parent]['children'][$id] = $id; } } $stmt->close(); print_r($tree); } ?> 

И структура БД

введите описание изображения здесь

Для целей тестирования

  • Tried die(print_r($results)); сразу после while ($stmt->fetch()) { . Получение первой строки моей таблицы db как Array ( [id] => 1 [parent] => 0 [name] => Sual ) 1 .
  • Пробовал while ($results=$stmt->fetch()) { вместо while ($stmt->fetch()) { . Получили следующие ошибки снова

    Неопределенный индекс в строке array_key_exists () ожидает ровно 2 параметра, 1 задано в строке if (! Array_key_exists ($ tree [$ parent] ['children'] [$ id])) {

    Предупреждение: array_key_exists () ожидает ровно 2 параметра, 1 задано в строке if (! Array_key_exists ($ tree [$ parent] ['children'] [$ id])) {

  • Пробовал if (!array_key_exists($id, $tree[$parent]['children'])) { вместо if (!array_key_exists($tree[$parent]['children'][$id])) { . Получили следующие ошибки снова

    Неопределенное смещение: 0,1,2 в списке строк ($ id, $ parent, $ name) = $ results;

Не могу понять, что случилось. Помогите решить эту проблему.