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
)