0

小さな問題が発生しました。まず、「グループ」、「ページ」、および結合テーブル「サブスクリプション」というテーブルがあります。

この背後にある考え方は、グループ (ユーザーを含む) がページを購読できるということです。ユーザーは、所属するグループにページをサブスクリプションとして追加できます (多対多)。情報: ユーザーは複数のグループに属することができます。

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 で見つかりませんでした)

または、グループごとに 1 つのクエリを実行する必要がありますか? それは避けたいところですが..

私はこの mysql と php の世界に慣れていないので、すべてのヘルプが割り当てられる価値があります! ありがとう。:)

4

1 に答える 1

1

非常に基本的な実装は次のようになります。

  • mysql の結果をループする
  • グループを 1 次元、関連するページを 2 次元として 2 次元配列を作成します。
  • HTMLテンプレートで、配列を取得し、外側のループを使用してグループを通過し、内側のループを使用してグループごとのページを取得します

乾杯 :)

于 2012-06-05T10:21:13.033 に答える