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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Uncaught Error: Call to a member function query() on null

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
nobody
Отправлено: 30 Января, 2019 - 23:11:23
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Янв. 2019  


Помог: 0 раз(а)




Всем привет. Просьба сильно не пинать, совсем еще новичок.
В общем, есть представление дерева в таблице БД с полями 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

Так понимаю, что в запрос на каком-то шаге не подставляется корректный айдишник, но никак не могу понять, почему(

(Отредактировано автором: 30 Января, 2019 - 23:12:07)

 
 Top
nobody
Отправлено: 31 Января, 2019 - 07:53:26
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Янв. 2019  


Помог: 0 раз(а)




Разобрался, не передавал $mysqli в функцию, все логично. Сорри за флуд, тему можно закрывать
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB