В БД лежит таблица
table
(`id`, `access`, `page`, `visibility`, `section`, `menu_name`, `parent`, `position`)
(1, 'all', 'all', 1, 'Head', 'Base', 'Kitchen', 0, 1),
(2, 'all', 'all', 1, 'Head', 'Base', 'Home', 0, 2),
(3, 'all', 'all', 1, 'Head', 'Base', 'Beauty', 0, 3),
(4, 'all', 'all', 1, 'Head', 'Base', 'Fitnes', 0, 4),
(5, 'all', 'all', 1, 'Left', 'Contacts', 'About', 0, 1),
(6, 'all', 'all', 1, 'Left', 'Contacts', 'Contacts', 0, 2),
(7, 'all', 'all', 1, 'Left', 'Contacts', 'Delivery', 0, 3);
(8, '!0', 'all', 1, 'Left', 'UserMenu', 'Messages', 0, 2),
(9, '!0', 'all', 1, 'Left', 'UserMenu', 'New', 9, 1),
(10, '!0', 'all', 1, 'Left', 'UserMenu', 'Inbox', 9, 2),
(11, '!0', 'all', 1, 'Left', 'UserMenu', 'Outbox', 9, 3),
(13, '!0', 'all', 1, 'Left', 'UserMenu', 'Settings', 9, 4);
(1, 'all', 'all', 1, 'Head', 'Base', 'Kitchen', 0, 1),
(2, 'all', 'all', 1, 'Head', 'Base', 'Home', 0, 2),
(3, 'all', 'all', 1, 'Head', 'Base', 'Beauty', 0, 3),
(4, 'all', 'all', 1, 'Head', 'Base', 'Fitnes', 0, 4),
(5, 'all', 'all', 1, 'Left', 'Contacts', 'About', 0, 1),
(6, 'all', 'all', 1, 'Left', 'Contacts', 'Contacts', 0, 2),
(7, 'all', 'all', 1, 'Left', 'Contacts', 'Delivery', 0, 3);
(8, '!0', 'all', 1, 'Left', 'UserMenu', 'Messages', 0, 2),
(9, '!0', 'all', 1, 'Left', 'UserMenu', 'New', 9, 1),
(10, '!0', 'all', 1, 'Left', 'UserMenu', 'Inbox', 9, 2),
(11, '!0', 'all', 1, 'Left', 'UserMenu', 'Outbox', 9, 3),
(13, '!0', 'all', 1, 'Left', 'UserMenu', 'Settings', 9, 4);
делаю такой запрос
SELECT *
FROM tvs_menu
WHERE `access`='all' OR `access`='!0' //авторизованный юзер
AND `page`='all' OR `page`='HomePage' //на главной странице
AND `visibility`='1' //только видимые пункты
ORDER BY 'parent','position'
если совсем грубо, то получаю массив
структура массива
[Секция][Имя меню][Номер позиции ссылки] = тут массив всех параметров ссылки
[Секция][Имя меню][Номер позиции ссылки] = тут массив всех параметров ссылки
[Секция][Имя меню][Номер позиции ссылки] = тут массив всех параметров ссылки
[Секция][Имя меню][Номер позиции ссылки] = тут массив всех параметров ссылки
[Секция][Имя меню][Номер позиции ссылки] = тут массив всех параметров ссылки
Внимание, вопрос! =)
Как лучше вытягивать подобную структуру? Так как сделал я, а потом просто циклом пробегаться и разбивать этот массив сначала секции, потом каждую секцию разбить на разные меню и потом уже формировать ссылки внутри массивов меню.
Или вариант 2
Послать в БД запрос и получить список секций.
Потом послать запрос и получить список меню в каждой из секций
И наконец послать ещё один запрос и получить список ссылок для каждого меню.
Или может кто предложит третий вариант? =)
_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки