sql >> Database >  >> RDS >> Mysql

PHP - probleem met geneste mysql_fetch_array() maakt me gek

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.



  1. Laravel $q->where() tussen datums

  2. Fysieke replicatiemechanismen in PostgreSQL

  3. Zoek afhankelijkheden in SQL Server:sql_expression_dependencies

  4. Hoe u SQL Server-taken migreert van de ene SQL Server-instantie naar de andere?