Tworze cztero - poziomowe dynamiczne menu i mam taka strukture tabeli w ktorej trzymam te menu:
CREATE TABLE `menu` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_fk_menu` int(11) DEFAULT NULL,
`id_fk_podmenu1` int(11) DEFAULT NULL,
`id_fk_podmenu2` int(11) DEFAULT NULL,
`nazwa` varchar(200) NOT NULL,
PRIMARY KEY (`id`),
KEY `id_fk_podmenu1` (`id_fk_podmenu1`),
KEY `id_fk_podmenu2` (`id_fk_podmenu2`),
KEY `id_fk_menu` (`id_fk_menu`)
) ENGINE=InnoDB DEFAULT CHARSET=latin2 AUTO_INCREMENT=436 ;
ALTER TABLE `menu`
ADD CONSTRAINT `menu_ibfk_1` FOREIGN KEY (`id_fk_menu`) REFERENCES `menu` (`id`),
ADD CONSTRAINT `menu_ibfk_2` FOREIGN KEY (`id_fk_podmenu1`) REFERENCES `menu` (`id`),
ADD CONSTRAINT `menu_ibfk_3` FOREIGN KEY (`id_fk_podmenu2`) REFERENCES `menu` (`id`);
Przykladowe wypelnienie tabeli danymi:
INSERT INTO `menu` VALUES (1, NULL, NULL, NULL, 'menu_gl1');
INSERT INTO `menu` VALUES (2, NULL, NULL, NULL, 'menu_gl2');
INSERT INTO `menu` VALUES (3, NULL, NULL, NULL, 'menu_gl3i');
INSERT INTO `menu` VALUES (4, NULL, NULL, NULL, 'menu_gl4');
INSERT INTO `menu` VALUES (5, NULL, NULL, NULL, 'menu_gl5');
INSERT INTO `menu` VALUES (6, NULL, NULL, NULL, 'menu_gl6');
INSERT INTO `menu` VALUES (7, 1, NULL, NULL, 'podmenu1');
INSERT INTO `menu` VALUES (8, 1, NULL, NULL, 'podmenu2');
INSERT INTO `menu` VALUES (9, 2, NULL, NULL, 'podmenu3');
INSERT INTO `menu` VALUES (10, 3, NULL, NULL, 'podmenu4');
INSERT INTO `menu` VALUES (11, NULL, 7, NULL, 'podpodmenu1');
INSERT INTO `menu` VALUES (12, NULL, 7, NULL, 'podpodmenu2');
INSERT INTO `menu` VALUES (13, NULL, 8, NULL, 'podpodmenu3');
INSERT INTO `menu` VALUES (14, NULL, 8, NULL, 'podpodmenu4');
INSERT INTO `menu` VALUES (15, NULL, 9, NULL, 'podpodmenu5');
INSERT INTO `menu` VALUES (16, NULL, NULL, 11, 'podpodpodmenu1');
INSERT INTO `menu` VALUES (17, NULL, NULL, 13, 'podpodpodmenu2');
INSERT INTO `menu` VALUES (18, NULL, NULL, 13, 'podpodpodmenu3');
INSERT INTO `menu` VALUES (19, NULL, NULL, 14, 'podpodpodmenu4');
INSERT INTO `menu` VALUES (20, NULL, NULL, 14, 'podpodpodmenu5');
Dane chcialabym wyswietlnic w takiej formie:
menu_gl1
podmenu1
podpodmenu1
podpodpodmenu1
podpodmenu2
podmenu2
podpodmenu3
podpodpodmenu2
podpodpodmenu3
podpodmenu4
podpodpodmenu4
podpodpodmenu5
menu_gl2
podmenu3
podpodmenu5
menu_gl3
podmenu4
menu_gl4
menu_gl5
Potrafie wyswietlac dane w taki sposob ale jezeli sa one w oddzielnych tabelach. A jak moge to zrobic trzymajac wszytskie w jednej tabeli??