Stai ottenendo il risultato atteso. Se hai il set di risultati a,b,c,d
, stai iniziando con a
che è una categoria padre, quindi torna all'inizio dell'insieme e scorre a,b,c,d
ancora come sottocategorie. Ora sei alla fine del set, quindi entrambi i loop usciranno poiché non ci sono più dati.
Quello che probabilmente vuoi fare è leggere prima tutti i dati in un array PHP, quindi scorrere su quello e costruire una sorta di struttura ad albero. Potresti anche essere in grado di costruire la tua struttura ad albero direttamente nel ciclo mysql_fetch.
A seconda di ciò che stai cercando di ottenere, ci sono anche modi migliori per archiviare i tuoi dati. Vale la pena leggere come archiviare alberi e dati gerarchici in SQL. I set nidificati sono probabilmente ciò che desideri.
Un'altra cosa:non usare mysql_fetch_array
, usa mysql_fetch_assoc
invece. Altrimenti ti ritroverai con chiavi numeriche e associative e un array di righe che contiene il doppio della quantità di dati che dovrebbe.