В общем, есть представление дерева в таблице БД с полями 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(); //закрываем коннект к БД
- ?>