Рекурсивный выбор PHP + mySQL для создания меню иерархии

Я изучаю PHP и mySQL, и мне нужна помощь, чтобы создать некоторый код, чтобы построить базу меню иерархии на родительских дочерних элементах. глубокий уровень будет 1 ребенок.

Это структура таблицы:

CREATE TABLE `businessprocess` (`bp_id` int(11), `bp_order` int(11), `bp_name` varchar(50), `bp_parent` int(11), `bp_active` tinyint(1), `dp_id` int(11)) ENGINE=InnoDB;

Это данные:

INSERT INTO `businessprocess` (`bp_id`, `bp_order`, `bp_name`, `bp_parent`, `bp_active`, `dp_id`) VALUES
(1, 1000, 'Solicitud de Servicios (fijo y movil)', NULL, 1, 1),
(2, 1100, 'Personas', 1, 1, 1),
(3, 1200, 'Empresas', 1, 1, 1),
(4, 2000, 'Baja de Servicio', NULL, 1, 1),
(5, 2100, 'Personas', 4, 1, 1),
(6, 2200, 'Empresas', 4, 1, 1),
(7, 2300, 'Defunción', 4, 1, 1),
(8, 2400, 'Tercero', 4, 1, 1),
(9, 3000, 'Modificacion de Servicio', NULL, 1, 1),
(10, 4000, 'Recambio de Equipo', NULL, 1, 1),
(11, 3100, 'Personas o Empresas', 9, 1, 1),
(12, 3200, 'Tercero', 9, 1, 1),
(13, 4100, 'Personas o Empresas', 10, 1, 1),
(14, 4200, 'Tercero', 10, 1, 1);

Это выходные данные, необходимые для меню в PHP:

    Solicitud de Servicios (fijo y movil)
    --Personas
    --Empresas
    Baja de Servicio
    --Personas
    --Empresas
    --Defunción
    --Tercero
    Modificacion de Servicio
    --Personas o Empresas
    --Tercero
    Recambio de Equipo
    --Personas o Empresas
    --Tercero

любая помощь очень ценится. Спасибо! ПЕРЕМЕННЫЙ ТОК

1 ответ

  1. Первый запуск

     SELECT bp_id, `bp_name` FROM `businessprocess` WHERE bp_parent IS NULL
    

    Секунды для каждого из возвращенных результатов выполнения

    SELECT `bp_name` FROM `businessprocess` WHERE bp_parent IS NOT NULL  AND `bp_parent` = bp_id(gotten from the previous result)
    

    Он должен отображать то, что вам нужно