Appels mysqli_fetch_array() redondants : un piège courant
Accéder plusieurs fois aux résultats d'une requête de base de données peut être une tâche difficile. Une approche courante consiste à utiliser mysqli_fetch_array(), une fonction qui récupère une ligne du jeu de résultats et avance le curseur vers la ligne suivante. Cependant, utiliser plusieurs fois le même ensemble de résultats avec mysqli_fetch_array() peut rencontrer des limitations.
L'exemple de code présenté tente de remplir à la fois une ligne et une colonne de table en utilisant les données d'une base de données, mais il est confronté au problème de ne pas être capable d'utiliser le même jeu de résultats deux fois avec mysqli_fetch_array(). La raison en est que chaque appel à mysqli_fetch_array() fait avancer le curseur vers la ligne suivante.
Pour contourner efficacement cette limitation, il est recommandé de dissocier la manipulation des données de la sortie. Cela signifie d'abord récupérer et stocker les données dans un tableau ou une structure de données, puis les utiliser selon les besoins :
<code class="php">// Select and store data into an array $db_res = mysqli_query( $db_link, $sql ); $data = array(); while ($row = mysqli_fetch_assoc($db_res)) { $data[] = $row; } // Use the stored data multiple times // Top row foreach ($data as $row) {</code>
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!