Faire une boucle dans les ensembles de résultats MySQL plusieurs fois avec les fonctions mysql_*
Lorsque vous travaillez avec des ensembles de résultats MySQL, il peut arriver que vous ayez besoin d'itérer à travers eux plusieurs fois. Cependant, par défaut, les fonctions mysql_* déplacent le pointeur vers une nouvelle ligne après chaque récupération. Cela pose un défi si vous avez besoin de pouvoir parcourir l'ensemble de résultats plus d'une fois.
Une nouvelle approche pour itérer deux fois
Pour remédier à cette limitation, utilisez le Fonction mysql_data_seek(). Cela vous permet de réinitialiser le pointeur du jeu de résultats au début, vous permettant ainsi de parcourir à nouveau les lignes. Voici une démonstration pratique :
$result = mysql_query(/* Your query */); while ($row = mysql_fetch_assoc($result)) { // Perform operations on the first loop... } // Reset the pointer to the first row mysql_data_seek($result, 0); while ($row = mysql_fetch_assoc($result)) { // Perform operations on the second loop... }
Considérations alternatives
Bien que cette méthode permette plusieurs itérations, il convient de se demander s'il s'agit de l'approche la plus efficace. Il est généralement préférable d'effectuer tous les traitements nécessaires dans la première boucle pour éviter les frais généraux. Cependant, si plusieurs itérations sont inévitables, la solution ci-dessus fournit un moyen simple d'y parvenir.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!