Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Uncaught Error: Call to a member function query() on null
Форумы портала PHP.SU » » Вопросы новичков » Uncaught Error: Call to a member function query() on null

Страниц (1): [1]
 

1. nobody - 30 Января, 2019 - 23:11:23 - перейти к сообщению
Всем привет. Просьба сильно не пинать, совсем еще новичок.
В общем, есть представление дерева в таблице БД с полями name, obj_id, parent_id. Задача: зная obj_id, раскрутить всю иерархию до корневого элемента. Имеется такой код с рекурсивной функцией:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $mysqli = new mysqli("blablabla.mysql", "blablabla_mysql", "pass", "blablabla_db"); //подключаемся к БД
  4.     printf("Не удалось подключиться: %s\n", mysqli_connect_error());
  5.     exit();
  6. }
  7. $mysqli->query("SET NAMES 'utf8'");
  8.  
  9. printf ("<br/><br/>");
  10.  
  11. $way = 'Путь: ';
  12. $obj_id = 8;
  13.  
  14. function get_way($obj_id) {
  15.     $curr_obj = $mysqli->query("SELECT name, parent_id FROM objects WHERE obj_id = ".$obj_id); //Выбираем данные из БД
  16.     if (mysqli_num_rows($curr_obj) > 0) {
  17.         while ($row = $curr_obj->fetch_assoc()) {            
  18.             $way .= '<b>'.$row["name"].'</b><u>'.$row["parent_id"].'</u>';
  19.             $way .= '<br/>';            
  20.             $par_id = (int)$row["parent_id"];          
  21.             if  ($par_id > 0) {
  22.                 get_way($par_id);
  23.             }
  24.             else { return $way; }
  25.         }
  26.     }
  27.  
  28. }
  29.  
  30. echo get_way($obj_id);
  31.  
  32. $mysqli->close(); //закрываем коннект к БД
  33. ?>
  34.  


При выполнении упорно получаю Uncaught Error: Call to a member function query() on null in /.../testway.php:19 Stack trace: #0 /.../testway.php(37): get_way(8) #1 {main} thrown in /.../testway.php on line 19

Так понимаю, что в запрос на каком-то шаге не подставляется корректный айдишник, но никак не могу понять, почему(
2. nobody - 31 Января, 2019 - 07:53:26 - перейти к сообщению
Разобрался, не передавал $mysqli в функцию, все логично. Сорри за флуд, тему можно закрывать

 

Powered by ExBB FM 1.0 RC1