[RESOLU] Compter nombre d'entrées dans BDD

Eléphanteau du PHP | 47 Messages

16 mai 2013, 14:14

Bonjour, je souhaite compter le nombre de garcons et filles dans une base de données. Avec ce code, cela marche bien :
$nbg=0;
$nbf=0;
$sql="select * from userdata";
$req=mysql_query($sql) or die('Erreur sql');

while($data=mysql_fetch_array($req))
{
if ( $data['field_value'] == "m") $nbg++ ; //incrémente nombre de garçons
if ( $data['field_value'] == "f") $nbf++ ; //incrémente nombre de filles
}
echo "Nombre de garcons : ".$nbg."<br>Nombre de filles : ".$nbf;
mysql_close ();
Mais c'est lent ! Car il incrémente les variables $nbg et $nbf un à un !
Donc je cherche un moyen pour compter plus rapidement.
$sql="select * from userdata";
$req=mysql_query($sql) or die('Erreur sql');

$compterg = mysql_query("SELECT COUNT(*) FROM userdata WHERE field_value ='m'"); 
$nbg = mysql_fetch_object($compterg); 
echo "Nombre de garcons : ".$nbg;

$compterf = mysql_query("SELECT COUNT(*) FROM userdata WHERE field_value ='f'"); 
$nbf = mysql_fetch_object($compterf); 
echo "<br>Nombre de filles : ".$nbf;

mysql_close ();
En cherchant un peu sur le net, je vois qu'on peut utiliser SELECT COUNT, mais cela ne marche pas.
Modifié en dernier par fatalfury le 16 mai 2013, 16:38, modifié 1 fois.

Mammouth du PHP | 619 Messages

16 mai 2013, 15:00

Bonjour,

oui il te suffi de faire un count(id) par exemple il va contente tous les enregistrement present

exemple
$query = "SELECT count(id) from table where toto='1'"; 
$result = mysql_query($query) or die (mysql_error()); 

$resultat=mysql_fetch_row($result); 

echo $resultat[0]; // affichage du résultat 

Mammouth du PHP | 571 Messages

16 mai 2013, 15:44

ton code à l'air bon mais il faut attribuer un alias à count(*) dans ta requête:
 $compterg = mysql_query("SELECT COUNT(*) as nbGarcon FROM userdata WHERE field_value ='m'");
$nbg = mysql_fetch_object($compterg);
echo "Nombre de garcons : ".$nbg->nbGarcon;

Eléphanteau du PHP | 47 Messages

16 mai 2013, 16:34

Merci, c'est parfait !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

16 mai 2013, 20:00

Modération :
Si ta question est résolue, pense à l'indiquer pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.
Tu peux réaliser cette opération toi-même en cliquant sur le bouton vert "Mettre le sujet en tant que Résolu" situé en haut de la page à côté du titre du sujet.
Il en faut peu pour être heureux ......