Requete sql avec count()

bcmfr Messages postés 137 Date d'inscription jeudi 18 juillet 2002 Statut Membre Dernière intervention 20 novembre 2016 - 14 déc. 2005 à 19:42
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 - 17 déc. 2005 à 12:54
Bonjour à tous

J'ai une table Mysq:


Champ |
Type |<!--Attributs |-->
Null |
|<!--Extra |-->
----

id_cat,
smallint(10), <!--, -->
Oui,
, <!--auto_increment, -->
----

nom_cat,
varchar(150), <!--, -->
Oui,
, <!--, -->
----

nbre_clics,
smallint(10), <!--, -->
Oui

je souhaiterais faire une requete Mysql qui compte le nombre d'enregistrement et qui me permet par la suite d'afficher le nombre de clics du type:


$select_cat
= "select count(id_cat),nbre_clics from categories" ;
$sql_select_cat =mysql_query($select_cat);

mais j'ai cette erreur:

Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause

j'aimerais réussir a faire cette requete plutot que de faire 1 requete pour compter le nombre de clics puis 1 autre pour afficher le nombre clics?

merci d'avance

9 réponses

bcmfr Messages postés 137 Date d'inscription jeudi 18 juillet 2002 Statut Membre Dernière intervention 20 novembre 2016
14 déc. 2005 à 19:46
désolé pour le double post
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 9
14 déc. 2005 à 19:53
Salut...
Champ | Type |<!--Attributs |--> Null | |<!--Extra |--> ----
id_cat, smallint(10), <!--, --> Oui, , <!--auto_increment, --> ----
nom_cat, varchar(150), <!--, --> Oui, , <!--, --> ----
nbre_clics, smallint(10), <!--, --> Oui





Je ne suis pas expert en SQL. mais je trouve étonnant d'avoir un smallint à 10 !!! (10 c'est beaucoup) Mais peut-importe





La requète que tu veux faire est :

$res = mysql_query("select id_cat,nbre_clics from categories;");

$nb_cat = mysql_num_rows($res);





Je ne vois comment sortir en même temps le nombre de catégorie et le nombre de clics par catégorie...





A+
0
bcmfr Messages postés 137 Date d'inscription jeudi 18 juillet 2002 Statut Membre Dernière intervention 20 novembre 2016
14 déc. 2005 à 20:07
Slt

non je ne veux pas utiliser mysql_num_rows mais count()

voilà le problème

@+
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 9
14 déc. 2005 à 20:25
Et ben tu le fais en deux fois :



select count(id_cat) from categories;



puis



select id_cat,nbre_clics from categories;






"je ne veux pas utiliser mysql_num_rows"

il ne faut pas être réfractère à ce point...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
14 déc. 2005 à 20:29
Salut,



essai ça :


SELECT nbre_clics, COUNT(a.id_cat) from matable as a, matable GROUP BY a.id_cat=a.id_cat

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
14 déc. 2005 à 20:43
Oui, il faut appeler 2 fois sa table pour pouvoir faire un COUNT() lorsqu'il y a plusieurs enregistrements...

pis num_rows() n'a jamais tué personne... au contraire :o
0
bcmfr Messages postés 137 Date d'inscription jeudi 18 juillet 2002 Statut Membre Dernière intervention 20 novembre 2016
15 déc. 2005 à 11:22
Slt à tous



merci pour vos réponses .je vais essayer



mais si je dit je ne veux pas utiliser mysql_num_rows c'est car
lorsqu'une personne depose un script avec ca, ca crie au scandale dans
les commentaires du script en disant qu'il ne faut pas l'utiliser!!



Je suis bete et discipliné moi! je lie ca donc je veux éviter de l'utiliser!!



merci à tous

@+
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
15 déc. 2005 à 11:47
N'importe quoi :) une fonction c'est fait pour etre utilisée !
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 9
17 déc. 2005 à 12:54
Ouai, je confirme...



mieux vaut utiliser une petite fonction faite exprés pour plutôt que de
doubler une table dans une requète ! Niveau performance, y'a pas de
doute à avoir...





Sur quelles sources t'as lu des trucs pareils ? Histoire qu'on aille les insulter (gentiement bien sûr)





A+
0
Rejoignez-nous