Maison >base de données >tutoriel mysql >Comment puis-je parcourir deux fois un tableau de résultats PDO ?

Comment puis-je parcourir deux fois un tableau de résultats PDO ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-28 17:57:13755parcourir

How Can I Iterate Through a PDO Result Array Twice?

Itérer deux fois un tableau à partir d'un résultat PDO

Lorsque vous travaillez avec PDO, il peut être nécessaire de parcourir plusieurs fois un tableau récupéré. Cependant, contrairement à la méthode mysql_data_seek() de MySQL, PDO ne fournit pas de moyen direct de réinitialiser le pointeur du tableau. Pour obtenir la même fonctionnalité, une approche alternative doit être utilisée.

La solution consiste à stocker les résultats récupérés dans un tableau, puis à parcourir ce tableau deux fois. Voici un exemple :

$pdo = new PDO('mysql:host=' . $host . ';dbname='.$database, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$stmt = $pdo->prepare('SELECT * FROM mytable WHERE active = 1 ORDER BY name ASC');
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$stmt->execute();

$rows = $stmt->fetchAll();

foreach ($rows as $r) {
    // first run
}

foreach ($rows as $r) {
    // seconds run
}

Dans ce code révisé :

  • Les résultats de la requête sont récupérés dans un tableau à l'aide de fetchAll().
  • Deux boucles foreach distinctes sont utilisés pour parcourir le tableau deux fois.

En enregistrant les résultats dans un tableau, l'intention initiale de itérer deux fois sur le même tableau, en commençant par la ligne zéro à chaque fois, est conservé. Cette méthode fournit une solution robuste et efficace pour travailler avec les résultats PDO.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn