Ответов: 1 Просмотров: 232
|
Всем привет. Просьба сильно не пинать, совсем еще новичок.
В общем, есть представление дерева в таблице БД с полями name, obj_id, parent_id. Задача: зная obj_id, раскрутить всю иерархию до корневого элемента. Имеется такой код с рекурсивной функцией:
PHP:
скопировать код в буфер обмена
<?PHP $mysqli = new mysqli("blablabla.mysql", "blablabla_mysql", "pass", "blablabla_db"); //подключаемся к БД } $mysqli->query("SET NAMES 'utf8'"); $way = 'Путь: '; $obj_id = 8; function get_way($obj_id) { $curr_obj = $mysqli->query("SELECT name, parent_id FROM objects WHERE obj_id = ".$obj_id); //Выбираем данные из БД while ($row = $curr_obj->fetch_assoc()) { $way .= '<b>'.$row["name"].'</b><u>'.$row["parent_id"].'</u>'; $way .= '<br/>'; $par_id = (int)$row["parent_id"]; if ($par_id > 0) { get_way($par_id); } else { return $way; } } } } echo get_way($obj_id); $mysqli->close(); //закрываем коннект к БД ?>
При выполнении упорно получаю 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
Так понимаю, что в запрос на каком-то шаге не подставляется корректный айдишник, но никак не могу понять, почему( |