Compter le nombre de champs contenant une valeur [Résolu]

Signaler
Messages postés
3
Date d'inscription
mercredi 30 janvier 2008
Statut
Membre
Dernière intervention
16 mars 2009
-
bonapart002
Messages postés
45
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
9 février 2011
-
Bonjour à tous,
J'ai une table qui ressemble un peu à çà :

id type_1 type_2 type_3
1 Voiture Voiture Moto
2 Moto Voiture Moto
3 Moto Moto Moto

Je souhaiterai faire une requête qui me compte le nombre de moto (résultat=6 en gros), j'ai essayé avec COUNT mais ca me renvoie nombre d'enregistrement et j'ai essayé avec MATCH AGAINST mais je bloque....
Quelqu'un a une idée ?
Merci

4 réponses

Messages postés
45
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
9 février 2011

Hello
tu peut essayer avec ce code ,ca marche bien:
------------------------------
$nbmoto=0;
$sql="select * from nom_table";  //nom-table:metter le nom de tableau
$req=mysql_query($sql)or die('Erreur sql ');

while($data=mysql_fetch_array($req))
{
if ( $data['type_1'] == "moto") $nbmoto++ ;
if ( $data['type_2'] == "moto") $nbmoto++ ;
if ( $data['type_3'] == "moto") $nbmoto++ ;

}
echo "le nombre de moto est".$nbmoto;

--------------
Messages postés
3
Date d'inscription
mercredi 30 janvier 2008
Statut
Membre
Dernière intervention
16 mars 2009

Oups la mise en forme à sauté, j'essaye avec des balises

alors ma table ressemble à çà

id, type_1, type_2, type_3

01, auto, auto, moto

02, moto, auto, moto

03, moto, moto, moto
Messages postés
10843
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
18
Hello,

tu n'as pas forcément intérêt à faire ça uniquement en SQL.
Il y a sûrement une solution (moi, j'essayerais en déclarant une variable SQL et en l'incrémentant chaque fois que tu rencontres un type_x contenant "moto"), mais là, on est dimanche matin, et je n'ai pas du tout envie de lancer mysql, créer la table, la remplir et essayer...désolé :-)
Mais je peux te donner une solution sûre mixant sql et php :
tu fais ta requête avec une clause WHERE 'moto' IN (type_1, type_2, type_3)
Puis tu parcours le jeu de résultat et avec un array_count_values() tu incrémentes une variable comptant tes motos.
Messages postés
3
Date d'inscription
mercredi 30 janvier 2008
Statut
Membre
Dernière intervention
16 mars 2009

Merci malalam...mais j'ai du mal à mettre en place ta solution (je débute vraiment)... Peux-tu me détailler "Puis tu parcours le jeu de résultat et avec un array_count_values() tu incrémentes une variable comptant tes motos. "...
Merci