Ik weet niet zo goed hoe ik dit het beste in PHP voor elkaar krijg. Een foreach loopje door de records binnen een foreach door de types gaat het wellicht doen. Maar kan dat niet veel efficienter?Ik dacht dat zoiets een 'nested list' heet, maar kan er bijn niets over vinden.

Ik heb het volgende (http://dev.mysql.com/tech-resources/articles/hierarchical-data.html) al doorgelezen. Het was zeer leerzaam, maar niet wat ik nodig heb,

- Is de onderstaande query de beste aanpak? Kan dit beter?
- Hoe kan ik in PHP het beste (kwa performance) de onderstaande output bereiken?

Mijn query

SELECT 
    clubs.id as clubid, 
    clubs.name as clubname, 
    club_types.name as clubtype 
FROM 
    clubs
INNER JOIN
    club_types 
ON 
    club_types.id = clubs.club_type_id
GROUP BY 
    clubtype


Query resultaat:

clubid | clubname | clubtype
----------------------------
1 | naam1 | type1
2 | naam2 | type1
3 | naam3 | type1
4 | naam4 | type2
5 | naam5 | type2
6 | naam6 | type3
7 | naam7 | type3
8 | naam8 | type3
9 | naam9 | type3

Gewenste output (php)

type 1 (type1 count)
 - naam1
 - naam2
 - naam3
type 2 (type2 count)
 - naam4
 - naam5
type3 (type3 count)
 - naam6
 - naam7
 - naam8
 - naam9
Misschien zoiets als dit?
@karl

dat omschrijft hetzelfde (multi-level, zonder joins) als de link die ik opgaf in mijn post.. Ik zal eens de code goed gaan lezen, mischien zijn er wel wat dingen uit te halen. Mijn probleemstelling is dus iets anders voor zover ik nu kan zien.
In je while lus waar je de data vanuit je DB haalt kun je dit doen om je data ongeveer te plaatsen zoals jij hier net beschreef:

$clubs[$row['clubtype']][] = $row['clubnaam'];

daarna doe je meer eens var_dump($clubs); om te zien wat er nu uit is gekomen..
Ik begrijp iets niet....

hoe kan dit op mijn naam staan, terwijl ik gisteren de hele dag niet thuis was????
Dat zijn twee verschillende loogins
Heh, grappig.
Ik heet toevallig ook Jeroen (zijn er nog wel meer ;)).

Iemand trouwens al een suggestie voor deze probleemstelling?

Reageren