Ik heb een tabel met de volgende structuur:

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.

SELECT
	datum,
	dagdeel,
	GROUP_CONCAT(zaal_naam SEPARATOR ', ') AS zaallijst
FROM
	zaalindeling
GROUP BY datum, dagdeel
Hey goedemorgen CyberJack,

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:

     while($rij= mysql_fetch_assoc($resultaat)) { 
	  
		$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

Reageren