sql >> Databasteknik >  >> RDS >> Mysql

PHP - problem med kapslade mysql_fetch_array() som gör mig galen

Du får det förväntade resultatet. Om du har resultatuppsättningen a,b,c,d , du börjar med a som är en överordnad kategori, så den spolas tillbaka till början av setet och itererar genom a,b,c,d igen som underkategorier. Nu är du i slutet av setet så båda slingorna kommer att avslutas eftersom det inte finns mer data.

Vad du antagligen vill göra är att först läsa in all data i en PHP-array, sedan iterera över det och bygga en sorts trädstruktur. Du kanske också kan bygga din trädstruktur direkt i mysql_fetch-loopen.

Beroende på vad du försöker uppnå finns det också bättre sätt att lagra din data. Det är värt att läsa om hur man lagrar träd och hierarkisk data i SQL. Kapslade set är förmodligen vad du vill ha.

En annan sak:använd inte mysql_fetch_array , använd mysql_fetch_assoc istället. Annars får du numeriska och associativa nycklar och en radmatris som innehåller dubbelt så mycket data som den borde.



  1. SQL Infoga i tabellen nya rader för varje fält i samma tabell

  2. Mysql infoga slumpmässig datumtid i ett givet datumintervall

  3. Optimera MySql-fråga:För långsam vid beställning

  4. Visar en JSON-datauppsättning som en tabell med Node.js och Express