Vous êtes ici : Accueil » Les cours PHP » PDOStatement::fetchAll Retourne un tableau contenant toutes les lignes du jeu d'enregistrements
$sth = $db->prepare("SELECT name, color FROM fruits");
$sth->execute();
$result = $sth->fetchAll();
debug($result);
La fonction debug est une petite fonction php que j'ai trouvé sur le net qui permet d'afficher de manière visible une variable.
L'exemple ci-dessus va afficher quelque chose de similaire à :
Récupération de toutes les lignes d'un jeu de résultats de la table 'fruits':
Array ( [0] => Array ( [name] => apple [color] => green ) [1] => Array ( [name] => lemon [color] => yellow ) [2] => Array ( [name] => watermelon [color] => red ) )
On peut ajouter plusieurs arguments :
fetch_argument
Cet argument prend une valeur différente en fonction de la valeur de l'argument fetch_style
:
PDO::FETCH_COLUMN
: Retourne le numéro de la colonne demandée (indexée à partir de 0).
PDO::FETCH_CLASS
: Retourne une instance de la classe désirée. Les colonnes sélectionnées sont liées aux attributs de la classe.
PDO::FETCH_FUNC
: Retourne la valeur de retour de la fonction de rappel précisée.
Exemple #1 Récupération de toutes les valeurs d'une seule colonne depuis un jeu de résultats
$sth = $db->prepare("SELECT name, color FROM fruits");
$sth->execute();
$result = $sth->fetchAll(PDO::FETCH_COLUMN, 0);
debug($result);
L'exemple ci-dessus va afficher quelque chose de similaire à :
Array ( [0] => apple [1] => lemon [2] => watermelon )
Exemple #2 Grouper toutes les valeurs d'une seule colonne
$sth = $db->prepare("SELECT name, color FROM fruits");
$sth->execute();
$result = $sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP);
debug($result);
L'exemple ci-dessus va afficher quelque chose de similaire à :
Array ( [apple] => Array ( [0] => green ) [lemon] => Array ( [0] => yellow ) [watermelon] => Array ( [0] => red ) )
Exemple #3 Instancier une classe pour chaque résultat
class fruits {
public $name;
public $colour;
}
$sth = $db->prepare("SELECT name, color FROM fruits");
$sth->execute();
$result = $sth->fetchAll(PDO::FETCH_CLASS, "fruits");
debug($result);
L'exemple ci-dessus va afficher quelque chose de similaire à :
Array ( [0] => fruits Object ( [name] => apple [colour] => [color] => green ) [1] => fruits Object ( [name] => lemon [colour] => [color] => yellow ) [2] => fruits Object ( [name] => watermelon [colour] => [color] => red ) )
Exemple #4 Appel d'une fonction pour chaque résultat
function fruit($name, $colour) {
return "{$name}: {$colour}";
}
$sth = $db->prepare("SELECT name, color FROM fruits");
$sth->execute();
$result = $sth->fetchAll(PDO::FETCH_FUNC, "fruit");
debug($result);
L'exemple ci-dessus va afficher quelque chose de similaire à :
Array ( [0] => apple: green [1] => lemon: yellow [2] => watermelon: red )