PHP Comment savoir le nombre de reponse MYSQL

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 !
A voir également:

4 réponses

crapoulou Messages postés 42844 Statut Modérateur, Contributeur sécurité 8 014
 
Bonjour,

Tu peux utiliser COUNT :
https://sql.sh/fonctions/agregation/count

SELECT COUNT (*) FROM utilisateurs WHERE departement = :departement
0
spylller Messages postés 441 Statut Membre 28
 
Merci beaucoup !
Et je retrouve le nombre comme ca : ?
$req = $bdd->prepare('SELECT COUNT * FROM comptes WHERE id = :id');
$req->execute(array('id'=>$id));
$nombre = $req->fetch();
0
crapoulou Messages postés 42844 Statut Modérateur, Contributeur sécurité 8 014 > spylller Messages postés 441 Statut Membre
 
Essaye mais ça ne me semble pas mal.
Je n'ai pas toutes les subtilités du PHP en tête :-)
0
jordane45 Messages postés 40050 Date d'inscription   Statut Modérateur Dernière intervention   4 759
 
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
0
crapoulou Messages postés 42844 Statut Modérateur, Contributeur sécurité 8 014
 
Salut Jordane,

Merci, je te laisse la suite :-)

++
0
jordane45 Messages postés 40050 Date d'inscription   Statut Modérateur Dernière intervention   4 759
 
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);
  }
}
0
spylller Messages postés 441 Statut Membre 28
 
D'accord, merci beaucoup, j'ai plus qu'à appliqué =D
0