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

любая помощь очень ценится. Спасибо! переменный ток

0

Решение

Первый забег

 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)

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector