J'utilise les entrées de la base de données pour remplir les lignes et les colonnes du tableau. Mais je ne peux pas accéder aux données renvoyées par SQL en utilisant mysqli_fetch_array()
deux fois. Je dois parcourir les résultats de MySQLi plusieurs fois. Cela ne fonctionne pas :
//Copy the result $db_res = mysqli_query( $db_link, $sql ); $db_res2=$db_res; //Top row while ($row = mysqli_fetch_array( $db_res, MYSQL_ASSOC)) { echo "<td>". $row['Title'] . "</td>"; } //leftmost column while ($row = mysqli_fetch_array( $db_res2, MYSQL_ASSOC)) { echo "<tr>"; echo "<td>". $row['Title'] . "</td>"; ..... echo "</tr>"; }
Comment appliquer mysqli_fetch_array
deux fois sur le même résultat ?
Vous devez toujours séparer la manipulation des données de la sortie.
Sélectionnez d'abord vos données :
Notez qu'à partir de PHP 5.3, vous pouvez utiliser
fetch_all()
au lieu d'une boucle explicite :Utilisez-le ensuite autant de fois que nécessaire :
Vous n'avez pas besoin de
while
循环,也根本不需要使用mysqli_fetch_array()
!Vous pouvez simplement l'utiliser dans
mysqli_result
对象本身上循环多次。它实现了Traversable
接口,允许在foreach
.Cependant, vous devez séparer la logique de la base de données de la logique d'affichage, pour y parvenir il est préférable d'utiliser
fetch_all(MYSQLI_ASSOC)
dans la logique de la base de données pour récupérer tous les enregistrements dans un tableau.Si vous extrayez toutes les données dans un tableau, vous pouvez parcourir le tableau autant de fois que vous le souhaitez.