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é :
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!