Алгоритм определения уровня вложенности

Андрей12 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
13.02.2016

Имеется скрипт просмотра дерева категорий. Стоит задача загружать из базы только те подкатегории, что были открыты пользователей. Список

открытых категорий хранится в базе в таблице "xf_nodes_addon", основной

список категорий хранится в "xf_node".

Имеется проблема с определением вложенности. Мне нужно как-то отмечать уровень вложенности,

в то же время сделать, чтобы подкатегории открывались под родителями.

Пока не знаю какой алгоритм придумать. Жду ваших откликов. Спасибо!

Данный запрос выводит родительские категории и открытые подкатегории.

SELECT node_id,

title,

admin_id as open,

parent_node_id

FROM `xf_node`

LEFT JOIN `xf_nodes_addon` open USING(`node_id`)

WHERE `parent_node_id` = 0 OR `parent_node_id` IN (SELECT `node_id` FROM `xf_nodes_addon`)