Mysql
 sql >> Base de données >  >> RDS >> Mysql

PHP - un problème avec mysql_fetch_array() imbriqué me rend fou

Vous obtenez le résultat attendu. Si vous avez le jeu de résultats a,b,c,d , vous commencez par a qui est une catégorie parente, elle revient donc au début de l'ensemble et parcourt a,b,c,d à nouveau en tant que sous-catégories. Maintenant que vous êtes à la fin de l'ensemble, les deux boucles se termineront car il n'y a plus de données.

Ce que vous voulez probablement faire est de lire d'abord toutes les données dans un tableau PHP, puis de les parcourir et de créer une sorte de structure arborescente. Vous pourriez également être en mesure de construire votre arborescence directement dans la boucle mysql_fetch.

Selon ce que vous essayez d'accomplir, il existe également de meilleures façons de stocker vos données. Cela vaut la peine de lire comment stocker des arbres et des données hiérarchiques en SQL. Les ensembles imbriqués sont probablement ce que vous voulez.

Une autre chose :n'utilisez pas mysql_fetch_array , utilisez mysql_fetch_assoc Au lieu. Sinon, vous vous retrouvez avec des clés numériques et associatives et un tableau de lignes qui contient deux fois plus de données qu'il ne le devrait.