Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PHP - Problem mit verschachteltem mysql_fetch_array() macht mich verrückt

Sie erhalten das erwartete Ergebnis. Wenn Sie die Ergebnismenge a,b,c,d haben , beginnen Sie mit a Dies ist eine übergeordnete Kategorie, sodass zum Anfang des Satzes zurückgespult und durch a,b,c,d iteriert wird wieder als Unterkategorien. Jetzt sind Sie am Ende des Satzes, sodass beide Schleifen beendet werden, da keine Daten mehr vorhanden sind.

Was Sie wahrscheinlich tun möchten, ist, zuerst alle Daten in ein PHP-Array einzulesen, dann darüber zu iterieren und eine Art Baumstruktur aufzubauen. Möglicherweise können Sie Ihre Baumstruktur auch direkt in der mysql_fetch-Schleife erstellen.

Je nachdem, was Sie erreichen möchten, gibt es auch bessere Möglichkeiten, Ihre Daten zu speichern. Es lohnt sich, nachzulesen, wie man Bäume und hierarchische Daten in SQL speichert. Verschachtelte Sätze sind wahrscheinlich das, was Sie wollen.

Eine andere Sache:Verwenden Sie nicht mysql_fetch_array verwenden Sie mysql_fetch_assoc stattdessen. Andernfalls erhalten Sie numerische und assoziative Schlüssel und ein Zeilenarray, das die doppelte Datenmenge enthält, die es sollte.