Список с повторяющимися записями

У меня есть небольшая проблема. Для начала у меня есть следующие таблицы: "группы", "страницы" и соединительная таблица "подписки"

Идея заключается в том, что группа (с пользователями) может подписаться на страницу. Пользователь может добавить страницу в качестве подписки на группу, в которой он находится (многие ко многим). Для информации: пользователь может быть в нескольких группах.

Как часть пользовательского интерфейса я хочу сделать список об этом. Из каждой группы я хочу связанные страницы. Например: (Группа:... Страницы: -...., -.... | Группа:... Страницы: -...., -.... и т. Д.)

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-шаблоне возьмите свой массив и используйте внешний цикл для просмотра групп и внутренний цикл для получения страниц в группе.

ура:)

Другие вопросы по тегам