0

我有一个小问题。首先,我有以下表格:“groups”、“pages”和联结表“subcriptions”

这背后的想法是一个组(有用户)可以订阅一个页面。用户可以将页面作为订阅添加到他所在的组。(多对多)。有关信息:一个用户可以在多个组中。

作为 UI 的一部分,我想列出一个关于它的列表。从每个组中,我都想要相关的页面。例如:(组:...页面:-....,-.... | 组:...页面:-....,-.... 等)

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 框架,但我在 Zend 中找不到可以实现我想要的技巧的解决方案)

还是必须对每个组进行一次查询?不过我想避免这种情况..

我是这个 mysql 和 php 世界的新手,所以每一个帮助都值得分配!谢谢。:)

4

1 回答 1

1

一个非常基本的实现如下:

  • 遍历mysql结果
  • 构建一个二维数组,以组为第一维,相关页面为第二维
  • 在您的 html 模板中,获取您的数组并使用外部循环来遍历您的组,并使用内部循环来获取每个组的页面

干杯:)

于 2012-06-05T10:21:13.033 回答