Mysql
 sql >> Database >  >> RDS >> Mysql

PHP - problema con mysql_fetch_array() nidificato che mi fa impazzire

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.