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
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

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

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

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 ?
Encore merci !
Posté : 08 mars 2006, 13:07
par heddicmi
bin je viens de le faire
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

désolé je ne sais plus où j'en suis

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
