Как сгенерировать графически дерево с родителем и потомком на основе n уровня из базы данных, используя массив в PHP?

У меня есть следующие данные в таблицу:

id parent_id child_id level
1 53987 52548 1
2 60764 52548 2
3 60764 53987 1
4 60764 59695 2
5 63457 59695 1
6 60764 63457 1

Итак, как я могу получить данные рекурсивно с уровнем и сохранить данные в массив, как ['child_id','parent_id',level]. Мне нужна помощь для написания запроса и создания дерева.

Дерево должно быть как:

Примечание: я не могу изменить структуру таблицы базы данных. Мне нужно дерево, основанное на данной структуре таблицы.

1 ответ

Попробуйте этот запрос:

выберите идентификатор,
        `Child_id`,
        `parent_id`, уровень
из (выберите * из vtiger_ib_level
         упорядочить по parent_id, id) products_sorted,
        (выберите @pv:= '60764') инициализация
где find_in_set(`parent_id`, @pv)
и длина (@pv:= concat(@pv, ',', id))
Другие вопросы по тегам