"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je utiliser `mysqli_fetch_array()` plusieurs fois sur le même ensemble de résultats ?

Comment puis-je utiliser `mysqli_fetch_array()` plusieurs fois sur le même ensemble de résultats ?

Publié le 2024-11-19
Parcourir:277

How Can I Use `mysqli_fetch_array()` Multiple Times on the Same Resultset?

Utilisation de mysqli_fetch_array() plusieurs fois

Lorsque vous travaillez avec des bases de données utilisant PHP et MySQL, vous pouvez rencontrer une situation dans laquelle vous devez accéder aux mêmes résultats de requête plus d'une fois. en utilisant la fonction mysqli_fetch_array(). Cependant, tenter d'utiliser mysqli_fetch_array() sur le même ensemble de résultats plusieurs fois entraînera une sortie vide.

C'est parce que mysqli_fetch_array() récupère et avance le pointeur dans l'ensemble de résultats. Ainsi, si vous essayez de récupérer à nouveau le même résultat, il n'y aura plus de données à récupérer.

Pour résoudre ce problème, vous devez séparer la manipulation des données de la sortie. Tout d'abord, récupérez toutes les données de la base de données et stockez-les dans un tableau :

$db_res = mysqli_query($db_link, $sql);
$data = [];
while ($row = mysqli_fetch_assoc($db_res)) {
    $data[] = $row;
}

Remarque : Depuis PHP 5.3, vous pouvez utiliser fetch_all() au lieu de la boucle explicite :

$db_res = mysqli_query($db_link, $sql);
$data = $db_res->fetch_all(MYSQLI_ASSOC);

Une fois que vous avez stocké les données dans un tableau, vous pouvez le parcourir autant de fois que nécessaire :

Rangée du haut :

foreach ($data as $row) {
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3