Je krijgt het verwachte resultaat. Als je de resultaatset a,b,c,d
. hebt , je begint met a
wat een bovenliggende categorie is, dus het spoelt terug naar het begin van de set en herhaalt a,b,c,d
weer als subcategorieën. Nu ben je aan het einde van de set, dus beide lussen worden afgesloten omdat er geen gegevens meer zijn.
Wat u waarschijnlijk wilt doen, is eerst alle gegevens in een PHP-array lezen, daarna herhalen en een soort boomstructuur bouwen. U kunt uw boomstructuur wellicht ook rechtstreeks in de mysql_fetch-lus bouwen.
Afhankelijk van wat u probeert te bereiken, zijn er ook betere manieren om uw gegevens op te slaan. Het is de moeite waard om u te verdiepen in het opslaan van bomen en hiërarchische gegevens in SQL. Geneste sets zijn waarschijnlijk wat u zoekt.
Nog iets:gebruik geen mysql_fetch_array
, gebruik mysql_fetch_assoc
in plaats van. Anders krijg je numerieke en associatieve toetsen en een rij-array die twee keer zoveel gegevens bevat als zou moeten.