Список с повторяющимися записями
У меня есть небольшая проблема. Для начала у меня есть следующие таблицы: "группы", "страницы" и соединительная таблица "подписки"
Идея заключается в том, что группа (с пользователями) может подписаться на страницу. Пользователь может добавить страницу в качестве подписки на группу, в которой он находится (многие ко многим). Для информации: пользователь может быть в нескольких группах.
Как часть пользовательского интерфейса я хочу сделать список об этом. Из каждой группы я хочу связанные страницы. Например: (Группа:... Страницы: -...., -.... | Группа:... Страницы: -...., -.... и т. Д.)
SQL-запрос не является проблемой:
SELECT Groups.name, pages.name, pages.id
FROM Groups
JOIN subscriptions ON groups.id = subscriptions.group_id
JOIN pages ON subscriptions.page_id = pages.id
WHERE groups.id IN ('1', '2') // de values 1 & 2 zijn voorbeelden en stellen de groepen id's voor waarin de huidige gebruiker zit.
Результат будет, например, выглядеть так:
group name ---- page name ---- page id
group1 -------- page1 --------- 1
group1 -------- page2 --------- 2
group2 -------- page1 --------- 1
Мой вопрос Как я могу получить (HTML) список, где я получаю одно имя группы и все связанные страницы этой группы? (Как пример, который я упоминал ранее). Мне нужно решение PHP. (Я использую Zend Framework, но я не смог найти в Zend решение, которое бы помогло мне)
Или нужно сделать один запрос для каждой группы? Я хотел бы избежать этого, хотя..
Я новичок в этом мире MySQL и PHP, поэтому каждая помощь стоит выделить! Благодарю.:)
1 ответ
Очень простая реализация будет следующей:
- цикл через результаты MySQL
- построить 2-мерный массив с группой в качестве 1-го и связанных страниц в качестве 2-го измерения
- в своем HTML-шаблоне возьмите свой массив и используйте внешний цикл для просмотра групп и внутренний цикл для получения страниц в группе.
ура:)