Page 1 sur 2

Afficher le nb d'enregistrement selon des catégories

Posté : 08 mars 2006, 11:56
par charabia
Bonjour !

Je cherche à afficher quelque chose de ce genre :
catégorie 1 [x entrées]
catégorie 2 [x entrées]
catégorie 3 [x entrées]
...etc

Comment afficher les x entrées pour chaque catégorie sans faire une requête pour chacune ?

Merci !

Posté : 08 mars 2006, 11:59
par heddicmi
Bin ça dépend de ta base de données :wink:

Mais à priori, c'est qqc du genre :
SELECT COUNT(entree)
FROM ...
GROUP BY categorie

Posté : 08 mars 2006, 12:00
par charabia
Dans ma base j'ai une table unique qui réunit les catégories en question.
ID
CAT
CONTENU

Posté : 08 mars 2006, 12:02
par heddicmi
Et les entrées, c'est quoi ?

Posté : 08 mars 2006, 12:09
par charabia
Qu'entends-tu par entrées ? En fait je vais re-expliquer :

J'ai des catégories et sous catégories
CAT1
-ss cat 1 [x entrées]
-ss cat 2 [x entrées]
-ss cat 3 [x entrées]

CAT2
-ss cat 1 [x entrées]
-ss cat 2 [x entrées]
-ss cat 3 [x entrées]

Ma table :
id
cat
sscat
contenu

Pour le moment je fait pour chaque affichage quelque chose de ce genre :

Code : Tout sélectionner

$rqt=mysql_query("SELECT * FROM xxx WHERE cat=1 AND sscat=1"); $nombreligne=mysql_num_rows($rqt);
Et c'est donc pour éviter de faire X requêtes.

Posté : 08 mars 2006, 12:20
par heddicmi
Et bin si tu fais
SELECT cat, sscat, COUNT(id)
FROM xxx
GROUP BY cat, sscat

ça devrais passer

Posté : 08 mars 2006, 12:24
par charabia
Oki mais devant les CAT1 [x entrées] que dois-je afficher...?

Je ne peux pas mettre $nombreligne devant chaque ligne étant donnée que les sscat sont affichées en dur...

Posté : 08 mars 2006, 12:30
par heddicmi
La requete que j'ai écrite devrais donner ça comme résultat

cat1 ; sscat1 ; x
cat1 ; sscat2 ; y
cat2 ; sscat1 ; z
cat2 ; sscat2 ; a
cat2 ; sscat3 ; b
etc...

Donc plus besoin de faire de mysql_num_rows... juste un while pour parcourir les résultats de la requête... Et les affichages, bin suivant ce que tu veux ;)

Posté : 08 mars 2006, 12:36
par charabia
Voui je vois ce que tu veux dire :lol: Mais je ne saisis toujours pas.

En fait le :
CAT 1
ss cat1
ss cat2

CAT2
ss cat1
ss cat2

est un page en "dure". Je ne parcours pas la base pour afficher les catégories et sous catégories...c'est là mon souci. Donc pour mettre les X entrées, je suis obligé d'en mettre un au niveau de chaque ss cat...et du coup ta requête ne fonctionnera pas...ou bien j'ai pas tout compris lol :roll:

Posté : 08 mars 2006, 12:40
par heddicmi
En fait le :
CAT 1
ss cat1
ss cat2

CAT2
ss cat1
ss cat2

est un page en "dure". Je ne parcours pas la base pour afficher les catégories et sous catégories...c'est là mon souci.
Bin rend ta page dynamique :lol:

Posté : 08 mars 2006, 12:43
par charabia
Ouep il ne me reste plus que ça à faire lol

En fait je pensais pas avoir autant de changement...et puis côté graphique en dure tu peux réaliser des choses un peu plus belle lol

Merci beaucoup pour ton aide ;) Je vais voir tout ça !

Posté : 08 mars 2006, 12:46
par heddicmi
Remarque, tu peux toujours insérer les résultats de la requête dans un tableau $tab[cat1][sscat1]=x, etc...

Et ensuite pour l'affichage, tu n'as plus qu'à afficher $tab[catx][ssxaty]

Posté : 08 mars 2006, 12:56
par charabia
Houuu ça m'arrangerait ça. Les tableaux c'est pas trop mon rayon lol tu peux me filer un coup de main et me donner une bonne piste ? :roll:

Encore merci !

Posté : 08 mars 2006, 13:07
par heddicmi
bin je viens de le faire :roll:

tu parcours les résultats... à chaque ligne
$tab[LA_CAT][LA_SS_CAT]=LA_VALEUR_DE_COUN;

Et ensuite, là où tu affiches "x entrées", tu fais un : echo $tab[LA_CAT][LA_SS_CAT];

Posté : 08 mars 2006, 13:09
par charabia
:roll: désolé je ne sais plus où j'en suis :lol: mes neurones surchauffent hihi

Je vais voir avec ce que tu m'as donné ;) Merci !

Je reviendrais vers toi si le dépatouillage est un échec :langue: