Page 1 sur 1

Problème affichage de données PDO

Posté : 23 janv. 2014, 18:47
par dogmongo
Bonjour,

J'ai décidé de passer à la PDO et bien entendu malgré les centaines de tuto que j'ai regardé je plante complet sur l'affichage des données,

j'ai l'error suivante à chaque fois, je précise que je suis en SM OFF et RG OFF
Notice: Undefined property: stdClass::$Nom
$query = 'SELECT *'
	. ' FROM src_ref'
	. ' WHERE ID>?'
		. ' AND cat=?'
	. ' LIMIT ?;';
$prep = $db->prepare($query);
 
$prep->bindValue(1, 0, PDO::PARAM_INT);
$prep->bindValue(2, 'Animaux', PDO::PARAM_STR);
$prep->bindValue(3, 5, PDO::PARAM_INT);
 
$prep->execute();
 
//$row = $prep->fetchAll(PDO::FETCH_ASSOC);

  // J'affiche le resultat
while($row = $prep->fetch(PDO::FETCH_OBJ)){
	echo $row->Nom." ".$row->Photo." ".$row->Date."<br/>";
}
merci de votre aide

Re: Problème affichage de données PDO

Posté : 23 janv. 2014, 22:18
par moogli
salut,

y a quoi comment champ dans ta table src_ref ?

c'est quoi comme sgbd derrière (oracle, mysql etc)?


sinon les indispensables debugguer (xdebug par exemple) ou var_dump() t'aiderons à résoudre ton problème ;)

quoi qu'il arrive tu n'as pas champ "nom" dans la requête SQL.

@+

Re: Problème affichage de données PDO

Posté : 24 janv. 2014, 00:51
par dogmongo
Salut moogli,

c'est du MySQL, j'ai les champs suivant

"Nom , Photo, cat, Titre , Valide"

j'essai de faire une simple requête d'affichage pour commencer à me familiariser avec cette méthode mais je dois mal mis prendre quelque part

Re: Problème affichage de données PDO

Posté : 24 janv. 2014, 10:01
par dogmongo
Bon et bien tu as finalement mis le doigt sur le problème, j'ai mis un champ qui n'existe pas dans ma base de donnée mysql et en plus je ne savais pas qu'il fallait ignorer les majuscules

je met le code qui fonctionne au cas ou quelqu'un tombe sur phpfrance avec le même problème d'affichage de donnée PDO mysql
$query = 'SELECT *'
	. ' FROM src_ref'
	. ' WHERE ID>?'
		. ' AND cat=?'
	. ' LIMIT ?;';
	
$prep = $db->prepare($query);
$prep->bindValue(1, 0, PDO::PARAM_INT);
$prep->bindValue(2, 'Animaux', PDO::PARAM_STR);
$prep->bindValue(3, 5, PDO::PARAM_INT);
 
$prep->execute();

while($lignes=$prep->fetch(PDO::FETCH_OBJ))
{
        echo $lignes->id.'<br />';
        echo $lignes->cat.'<br />';
        echo $lignes->titre.'<br />';
        echo $lignes->texte.'<br />';
        echo $lignes->photo.'<br />';
}
 

 // permet de tester la base de donnée en préproduction
/*if($prep !== false){
	echo 'Les données sont disponibles:';
}else{
	echo 'Aucun résultat disponible.';
}*/

//Clore la requête préparée
$prep->closeCursor();
$prep = NULL;
merci moogli

Re: [RESOLU] Problème affichage de données PDO

Posté : 24 janv. 2014, 12:20
par dogmongo
//$db->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER); 
// les noms de champs seront en caractères minuscules
voilà pourquoi je devais tout mettre en minuscule :oops:

Re: [RESOLU] Problème affichage de données PDO

Posté : 24 janv. 2014, 18:41
par moogli
ATTENTION avec oracle c'est des champs en majuscule qui sont fournit et il faut ajouter cette ligne pour les avoir en minuscule.

Si tu indiquais les noms des colonnes dans le select plutôt que d'utiliser l'étoile (de la mort c'est le mal ...) tu aurais eu une erreur explicite ;)
cela permet aussi en lisibilité (tu ne cherche d'où viens une info) et je ne t'aurais pas posé la question ;)
en plus tu ne retourne pas 50 champs qui te sont inutile.


@+

Re: [RESOLU] Problème affichage de données PDO

Posté : 25 janv. 2014, 11:06
par dogmongo
merci pour cette précision importante, j'en prends bonne note :wink: