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.