GROUP BY probleem - Geen juiste lijstweergave
id, zaal_naam, dagdeel
Ik heb daar als voorbeeld de volgende gegevens in staan:
1 zaal1 ochtend
2 zaal2 ochtend
3 zaal1 middag
4 zaal1 avond
5 zaal2 avond
6 zaal3 avond
Nu zoek ik een sql query die de volgende output geeft:
Gegroeppeerd op het dagdeel (dus ochtend, middag, avond).
Met onder het dagdeel de zalen.
Voorbeeld:
Ochtend: zaal1, zaal2
Middag: zaal1
Avond: zaal1, zaal2, zaal3
Ik heb al erg lang lopen zoeken op verschillende SQL pagina, maar ik kwam mijn specifieke probleem nog niet tegen.
IK heb je oplossing geprobeerd. Maar het blijkt nog steeds niet te werken, bijna....
Ik heb de volgende code:
SELECT bezet_door, dagdeel, GROUP_CONCAT(zaal_naam SEPARATOR '<br /> ') AS zaallijst FROM zaalindeling GROUP BY dagdeel
Ik krijg in de while het volgende resultaat:
AVOND INDELING
zaal2
zaal3: groep1
MIDDAG INDELING
zaal1
zaal2
zaal4: groep3
OCHTEND INDELING
zaal1: groep6
Je ziet dat er per dagindeling maar 1 groep getoond wordt, maar ik denk dat de oplossing dicht bij is.
Mijn whilelus:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
while($rij= mysql_fetch_assoc($resultaat)) {
$zaalnaam = $rij["zaallijst"];
$dagdeel = $rij["dagdeel"];
echo "<h3>$dagdeel indeling</h3>";
echo "<strong>$zaalnaam:</strong>";
}
$zaalnaam = $rij["zaallijst"];
$dagdeel = $rij["dagdeel"];
echo "<h3>$dagdeel indeling</h3>";
echo "<strong>$zaalnaam:</strong>";
}
Overigens wil ik, als dit eindelijk werkt, ook meer gegevens uit deze tabel ophalen.
Ik hoop dat je ziet wat er fout gaat.
Toevoeging op 20/08/2013 11:04:37:
Het punt is dus dat op een dagdeel (ochtend bijvoorbeeld) in meerdere zalen een bezetting kan zijn.
Mijn weergave is dus nu:
MIDDAG INDELING
1,2,4: groep3
maar achter zaal1 en zaal2 moet ook een groep staan, dus zoals:
MIDDAG INDELING
1: groep2
2: groep4
4: groep3
De groepnaam is in de dbtabel: bezet_door