PHP Comment savoir le nombre de reponse MYSQL
spylller
Messages postés
441
Statut
Membre
-
spylller Messages postés 441 Statut Membre -
spylller Messages postés 441 Statut Membre -
Bonjour,
Je voudrais savoir comment compter le nombre de reponse il y a à une requete.
Par exemple que je fasse :
SELECT * FROM utilisateurs WHERE departement = :departement
Et qu'en retour j'ai 8 par exemple.
(j'avais pensé a une "for each" et incrementation à chaque fois mais c'est lourd)
Merci !
--
Have a nice day
Je voudrais savoir comment compter le nombre de reponse il y a à une requete.
Par exemple que je fasse :
SELECT * FROM utilisateurs WHERE departement = :departement
Et qu'en retour j'ai 8 par exemple.
(j'avais pensé a une "for each" et incrementation à chaque fois mais c'est lourd)
Merci !
--
Have a nice day
4 réponses
-
Bonjour,
Tu peux utiliser COUNT :
https://sql.sh/fonctions/agregation/count
SELECT COUNT (*) FROM utilisateurs WHERE departement = :departement
-
Bonjour
Vu que tu es en pdo... tu fais ta requête normale en sélect *
Puis tu fais un fetchAll
Et un count (php) dessus
-
La solution proposée par Crapoulou fonctionne aussi. (après ça dépend si tu veux uniquement connaitre le nombre.. ou si tu veux aussi pouvoir afficher les lignes concernées)
les codes seraient :
Avec le nombre uniquement :
$sql = "SELECT COUNT(*) as NB FROM comptes WHERE id = :id "; $datas = array(':id'=>$id) ; try{ $req = $bdd->prepare($sql); $req->execute($datas); }catch(Exception $e){ echo "Erreur ! " . $e->getMessage(); } // Première solution en utilisant un fetch $row = $req->fetch(); $nb = $row['NB']; // deuxième solution utilisant directement un fetchColumn $nb = $req->fetchColumn()
Deuxième possibilité ...avoir le nombre de résultats... + les résultats$sql = "SELECT * FROM comptes WHERE id = :id "; $datas = array(':id'=>$id) ; try{ $req = $bdd->prepare($sql); $req->execute($datas); }catch(Exception $e){ echo "Erreur ! " . $e->getMessage(); } //on stocke les resultats dans un array $resultats = $req->fetchAll(); // Nombre de résultats $nb = count($resultats); //affichage des résultats : if(!empty($resultats)){ foreach($resultats as $R){ print_r($R); } } -