Problème de Fetch

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème de Fetch

Re: Problème de Fetch

par @rthur » 30 oct. 2020, 17:19

Si tu utilises fetchAll() tu ne dois pas le mettre dans un while() puisqu'il te renvoie déjà tous les résultats.
https://www.php.net/manual/fr/pdostatement.fetch.php
https://www.php.net/manual/fr/pdostatement.fetchall.php

Si on te dit que $val est un booléen, fait un var_dump() dessus pour voir ce qu'il contient, si c'est false, c'est probablement que tu as eu une erreur SQL (de connexion ou de requête...).

Le plus pratique pour débuguer, c'est d'activer les messages d'erreurs PDO avec l'attribut : PDO::ERRMODE_WARNING
https://www.php.net/manual/fr/pdo.error-handling.php

Problème de Fetch

par superNoob » 30 oct. 2020, 16:32

Bonjour,
J'essaie d'afficher les informations sur un film,
Mais avec un fetchAll j'obtiens l'erreur Undefined index: affiche_film (de même pour toutes les informations du film)
et avec un fetch j'obtiens l'erreur Trying to access array offset on value of type bool (pour toutes les variables $val)
Pouvez-vous m'aider s'il vous plaît?
Je pense que la requête fonctionne car j'obtiens avec var_dump le code
object(PDOStatement)#5 (1) { ["queryString"]=> string(127) "SELECT * FROM film WHERE ID_film IN (SELECT ID_film FROM videotheque WHERE id='11' AND possede='o') ORDER BY ID_film LIMIT 0,16" }

Cordialement. :D

Code : Tout sélectionner

$reponse = $db->query("SELECT * FROM film WHERE ID_film IN (SELECT ID_film FROM videotheque WHERE id='".$id."' AND possede='o') ORDER BY ID_film LIMIT ". $premierFilmAafficher .",". $nombreDeFilmsParPage); var_dump($reponse); // affichage $NbrLigne = 0; if ($NbreData != 0) { $j = 1; echo '<table id="video">'; while ($val = $reponse->fetchAll(PDO::FETCH_ASSOC)); { if ($j%$NbrCol == 1) { $NbrLigne++; echo "<tr>"; $fintr = 0; } // ------------------------- // DONNEES A AFFICHER dans la cellule echo '<td><a href="film.php?id_film='.$val['ID_film'].'"><img src="'.$val['affiche_film'].'" width=\"75px\" height=\"100px\" alt="'.$val['titre_film'].'" /></a></td> <td><a href="film.php?id_film='.$val['ID_film'].'">'.$val['titre_film'].'<br />de '.$val['realisateur_film'].'<br />('.$val['annee_prod'].')</a></td><td>&nbsp;</td>';