Page 1 sur 1

Récupérer valeur - Requête préparée PDO

Posté : 15 avr. 2011, 13:22
par jacfev
Bonjour,

Mon code:
$sql = 'SELECT email FROM inscrits';
$req = $cnx->prepare($sql);
$req->execute();
while($row = $req->fetchAll(PDO::FETCH_ASSOC)) {
  //echo $row['email'].'<br>'; //Erreur
  echo print_r($row).'<br>';
}
Résultat obtenu:
Array ( [0] => Array ( [email] => [email protected] ) [1] => Array ( [email] => [email protected] ) [2] => Array ( [email] => [email protected] ) [3] => Array ( [email] => [email protected] ) ) 1

Je voudrais afficher les valeurs.
Quelle est la bonne syntaxe à la place de ?
echo $row['email'];

Cordialement
J.F.

Re: Récupérer valeur - Requête préparée PDO

Posté : 15 avr. 2011, 14:01
par macgawel
Bonjour.

Un seul conseil : RTFM :twisted:
PDOStatement::fetchAll() retourne un tableau contenant toutes les lignes du jeu d'enregistrements. Le tableau représente chaque ligne comme soit un tableau de valeurs des colonnes, soit un objet avec des propriétés correspondant à chaque nom de colonne
donc :
1. Pas besoin de boucle WHILE, $row = $req->fetchAll(PDO::FETCH_ASSOC) te retourne dans $row un tabeau contenant toutes les lignes.
2. Pour afficher tous les emails, par contre, il faudra boucler sur $row, sachant que $row[$i][email] contient l'email de la $i-ème ligne...

Re: Récupérer valeur - Requête préparée PDO

Posté : 15 avr. 2011, 14:40
par jacfev
He oui, j'aurais dû le voir que c'était un tableau avec le résultat de print_r().

Merci macgawel.

Re: Récupérer valeur - Requête préparée PDO

Posté : 17 avr. 2011, 00:52
par stealth35
d’ailleurs inutile de faire une requete préparer ainsi que de faire un fetchAll
$sql = 'SELECT email FROM inscrits';
$req = $cnx->query($sql);
$req->setFetchMode(PDO::FETCH_ASSOC);

foreach($req as $row)
{
    echo $row['email'], '<br/>';
}