Goedemorgen,
Ik zit met een probleempje. Om te beginnen, ik heb de tabellen: 'groups', 'pages' en de koppeltabel 'subscriptions'.
Het idee hierachter is dat een groep (met gebruikers) op een pagina kan abonneren. Een gebruiker voegt een pagina toe als abonnement aan een groep waarin hij in zit. (many-to-many) Ter info: een gebruiker kan in meerdere groepen zitten.
Als onderdeel van de UI wil ik een lijst maken hiervan. Van elke groep wil ik de gekoppelde pagina's hebben. (Groep: ... Pagina's: - .... -.... | Groep: ... Pagina's: -... -... etc.)
De query is opzich geen probleem:
De resultaat ziet er dan bijvoorbeeld zo uit:
Nu is mijn vraag als volgt: Hoe ik krijg een lijst waarbij uit de result array (object) ik de groepnaam krijg en daaronder alle pagina's die aan die groep gekoppeld zijn? (zie voorbeeld hierboven). Dit bedoel ik dus in PHP ( Ik heb gebruik zend framework, maar de oplossing heb ik daarin niet kunnen vinden).
Of ik moet voor elke groep een aparte query doen?
Normaal gesproken doe ik ofwel een foreach() of een while() maar dat gaat in dit geval niet op.
Ik ben nog nieuw in deze wereld dus als jullie me in de goede richting willen sturen graag
Ik zit met een probleempje. Om te beginnen, ik heb de tabellen: 'groups', 'pages' en de koppeltabel 'subscriptions'.
Het idee hierachter is dat een groep (met gebruikers) op een pagina kan abonneren. Een gebruiker voegt een pagina toe als abonnement aan een groep waarin hij in zit. (many-to-many) Ter info: een gebruiker kan in meerdere groepen zitten.
Als onderdeel van de UI wil ik een lijst maken hiervan. Van elke groep wil ik de gekoppelde pagina's hebben. (Groep: ... Pagina's: - .... -.... | Groep: ... Pagina's: -... -... etc.)
De query is opzich geen probleem:
code:
1
2
3
4
5
| 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. |
De resultaat ziet er dan bijvoorbeeld zo uit:
group name | page name | page id |
---|---|---|
groepje1 | pagina1 | 1 |
groepje1 | pagina2 | 2 |
groepje2 | pagina1 | 1 |
Nu is mijn vraag als volgt: Hoe ik krijg een lijst waarbij uit de result array (object) ik de groepnaam krijg en daaronder alle pagina's die aan die groep gekoppeld zijn? (zie voorbeeld hierboven). Dit bedoel ik dus in PHP ( Ik heb gebruik zend framework, maar de oplossing heb ik daarin niet kunnen vinden).
Of ik moet voor elke groep een aparte query doen?
Normaal gesproken doe ik ofwel een foreach() of een while() maar dat gaat in dit geval niet op.
Ik ben nog nieuw in deze wereld dus als jullie me in de goede richting willen sturen graag