begin process at 2012 05 31 01:05:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Problème avec COUNT et DISTINCT


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème avec COUNT et DISTINCT

mercredi 29 décembre 2010 à 15:10:15 | Problème avec COUNT et DISTINCT

daporoty

Bonjour,

Ca fait 2 jours que je cherche à compter le nombre d'éléments différents dans une colonne vide ('fact') et que mysql me sort 1 au lieu de 0.
J'ai essayé :

Code PHP :
$nb1=mysql_fetch_array(mysql_query("SELECT COUNT(DISTINCT fact) FROM statut"));
echo '(nb1)'.$nb1['COUNT(DISTINCT fact)'];

$nb2=mysql_num_rows(mysql_query("SELECT DISTINCT fact FROM statut"));
echo '(nb2)'.$nb2;

$nb3=mysql_num_rows(mysql_query("SELECT DISTINCT fact FROM statut WHERE fact IS NOT NULL"));
echo '(nb3)'.$nb3;


Comment en fait en vrai ???

DapORoty
mercredi 29 décembre 2010 à 16:59:49 | Re : Problème avec COUNT et DISTINCT

morpheus57

Salut,

Et comme ça :
SELECT count(*), fact FROM statut WHERE fact IS NOT NULL GROUP BY fact




jeudi 30 décembre 2010 à 03:14:50 | Re : Problème avec COUNT et DISTINCT

daporoty

Bonjour,

Depuis j'ai remplis quelques lignes dans ma colonne 'fact', ta requète me donne 3 éléments au lieu de 5 ...
J'ai jamais vu ca, ca me semblait pourtant simple

DapORoty
jeudi 30 décembre 2010 à 09:15:07 | Re : Problème avec COUNT et DISTINCT

morpheus57

Re bonjour,

Je ne peux pas t'aider si tu ne me dis pas ce qu'il y a dans ta table.




jeudi 30 décembre 2010 à 12:59:22 | Re : Problème avec COUNT et DISTINCT

daporoty

Bonjour,
Actuellement j'ai dans ma table :

id fact
1 20100003
2 20100001
3 20100002
4 20100003
5 20100003
6
7
8 20100005
9 20100005
10 20100004
11 20100004

La en théorie je devrais avoir 5 éléments différents


DapORoty
jeudi 30 décembre 2010 à 14:13:51 | Re : Problème avec COUNT et DISTINCT

morpheus57

J'ai testé en local : La requête que je t'ai donnée fonctionne bien...
Peux-tu vérifier le type de tes données ?




jeudi 30 décembre 2010 à 15:10:33 | Re : Problème avec COUNT et DISTINCT

daporoty

Les données 'fact' étaient en TEXT, je viens de les passer en INT.

Code PHP :
$sql="SELECT count(*), fact FROM statut WHERE fact IS NOT NULL GROUP BY fact";
$rq=mysql_query($sql) or die(mysql_error());
$res=mysql_fetch_array($rq);
$nb=$res[0];
echo $nb;


J'ai extrait la rq précédente et mis sur une page seule pour éliminer d'éventuelles interactions.
Cette fois la requete me donne 1 au lieu de 5.



DapORoty
jeudi 30 décembre 2010 à 15:17:54 | Re : Problème avec COUNT et DISTINCT

morpheus57

Non mais attend...
La requête fonctionne si tu l'exécute dans un client MySQL.

Par contre, ce qui ne marche pas c'est ta récupération des résultats en PHP. Je te conseille d'aller faire un tour ici :
http://php.net/manual/fr/function.mysql-fetch-array.php

Notamment la partie suivante :
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
printf("ID : %s Nom : %s", $row[0], $row[1]);
}




jeudi 30 décembre 2010 à 15:29:58 | Re : Problème avec COUNT et DISTINCT

TychoBrahe

Salut,

Juste comme ça, chez moi ta première méthode fonctionne parfaitement :
Code PHP :
$nb1=mysql_fetch_array(mysql_query("SELECT COUNT(DISTINCT fact) FROM statut"));
echo '(nb1)'.$nb1['COUNT(DISTINCT fact)'];

J'ai bien le bon nombre d'éléments distincts, aussi bien pour 0 que pour n éléments.
jeudi 30 décembre 2010 à 15:40:29 | Re : Problème avec COUNT et DISTINCT

morpheus57

Salut,

Cependant, je pense que GROUP BY est plus performant que DISTINCT...





1 2

Cette discussion est classée dans : count, mysql, nb1, distinct, fact


Répondre à ce message

Sujets en rapport avec ce message

Récupérer les données d'une requete avec un COUNT [ par haens ] Bjr,petit pb !Voici la requete qui va chercher le nombre d'IDClients présent au moins deux fois dans la table Commandes :$req6 = mysql_query("SELECT C Renseignement [ par zzzzzz ] Salut mysql_query("SELECT count( *) FROM membres WHERE nick = '$nick_' AND pass = '$pass_'")j'aimerai savoir se qu'est ce count( *) svp :)et j'aimerai requete SQL count et distinct [ par samylatortue ] salut,je cherche a faire une requete qui selectionne des nom dans une table et qui compte combien de fois chaque nom apparait.j'ai essayer SELECT nom, DISTINCT dans MySQL [ par Evangun ] Salut!Je me demandais s'il y avait un moyen de faire que le distinct ne concerne que deux champs sur trois par exemple. Parce que dans l'exemple suiva pb requete count !!!! [ par fredericmaill ] Bonjour,voila j'ai un probleme avec ma requette COUNT voivi mon code :// verification si il existe deja un Responsable, si nb = 0 alors il n'y a pas d Insertion recherches mysql [ par rubenxela ] Salut, vous allez tout de suite comprendre que je suis une bille ! Je pense cependant que mon problème n'est pas insurmontable et que vous êtes nombre Mysql = count [ par Burnside ] bonjour,après avoir testé bcp de façon de compter le nombre de record pour un table, je viens ici,voilà ma requête :$requete = mysql_query("SELECT COU fonction récursive et count mysql a additionner [ par romega ] Salut,Alors j'ai une fonction récursive qui a pour but de compter le nombre de sujet dans les catégorie + sous catégorie d'un forum. Je fais donc un c Comment faire disparaitre des bannieres une fois cliqué [ par stomy95 ] Bonjour a tous , voila je suis débutant en webmastering et je voudrais savoir comment fait on pour faire disparaitre des banniere une fois cliqué par recuperer le resulta d'un select count dans une variable [ par Abdoul86 ] Bonjour j'ai besoin de recuperer le resultat que va me donner ma requete mais j'y arrive[^^sad1] j'aurai besoin d'aide $sql="SELECT COUNT(codescte) F


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,499 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales