compter le nombre de fichier dans une table

compter le nombre de fichier dans une table - PHP - Programmation

Marsh Posté le 11-01-2006 à 17:53:26    

salut,

 

je voudrai afficher le nombre de fichier par catégorie, voila mon code :

 
Code :
  1. <?php
  2. if(empty($_GET['id_cat']))
  3. {
  4. $q = mysql_query('SELECT * FROM categorie ORDER BY titre_cat');
  5. echo CATEGORIE;
  6. while($r = mysql_fetch_array($q))
  7.  echo '&gt; <a href="categories.php?id_cat='.$r['id_cat'].'">'.$r['titre_cat'].'</a> [ NOMBRE DE FICHIER ]<br />';
  8. echo '</p>';
  9. }
  10. ?>
 

Voilà, donc c'est : [ NOMBRE DE FICHIER ] que je n'arrive pas à faire, je ne sais pas comment mi prendre :p


Message édité par Orission le 18-04-2014 à 18:37:22

---------------
“ Un avis d’un homme non avisé ne doit jamais être pris en compte par un homme avisé. ” Jean Plancher, 1810, Taverne « Chez Bonaparte »
Reply

Marsh Posté le 11-01-2006 à 17:53:26   

Reply

Marsh Posté le 11-01-2006 à 18:36:09    

CATEGORIE, c'est une constante? (absence de $ )
 
des pistes pour toi :
en sql : "count" et "group by"
mi sql, mi php : "order by" côté sql et à toi de détecter ensuite le changement de catégorie au niveau de php.
 

Reply

Marsh Posté le 11-01-2006 à 18:55:36    

define('CATEGORIE','le_texte');
 
echo CATEGORIE;

 
sinon je sais comment on compte mais on ne peux pas compter et afficher avec une seule requete ?
 
et si je fais un WHERE ou autre faudra obligatoirement passer par la boucle, donc pas possible :s


---------------
“ Un avis d’un homme non avisé ne doit jamais être pris en compte par un homme avisé. ” Jean Plancher, 1810, Taverne « Chez Bonaparte »
Reply

Marsh Posté le 11-01-2006 à 18:59:21    

je t'ai indiqué des mots clés à chercher pour une solution de comptage en sql et pour une solution où tu comptes en php aprés avoir trié au niveau de la requette.
 
A toi de chercher un peu maintenant. ;)

Reply

Marsh Posté le 11-01-2006 à 19:16:55    

muahahah le sql et moi sa fait 3 :D
 
je dois me servir de jointure non ?
 
car je dois prendre des infos sur deux tables ?


---------------
“ Un avis d’un homme non avisé ne doit jamais être pris en compte par un homme avisé. ” Jean Plancher, 1810, Taverne « Chez Bonaparte »
Reply

Marsh Posté le 11-01-2006 à 19:47:32    

Bonne question, mais j'ai pas la structure de tes tables sous les yeux. :lol:

Reply

Marsh Posté le 11-01-2006 à 19:53:44    

Code :
  1. CREATE TABLE `categorie` (
  2.   `id_cat` int(2) NOT NULL auto_increment,
  3.   `titre_cat` varchar(50) collate latin1_general_ci NOT NULL default '',
  4.   PRIMARY KEY  (`id_cat`)
  5. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=23 ;
  6. CREATE TABLE `fichier` (
  7.   `id_film` int(3) NOT NULL auto_increment,
  8.   `titre_film` varchar(50) collate latin1_general_ci NOT NULL default '0',
  9.   `id_cat` int(2) NOT NULL default '0',
  10.   `nombre_cd` int(1) NOT NULL default '0',
  11.   `url` varchar(255) collate latin1_general_ci NOT NULL default '',
  12.   `hits` int(5) NOT NULL default '0',
  13.   PRIMARY KEY  (`id_film`)
  14. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=65 ;


Message édité par Orission le 18-04-2014 à 18:37:07

---------------
“ Un avis d’un homme non avisé ne doit jamais être pris en compte par un homme avisé. ” Jean Plancher, 1810, Taverne « Chez Bonaparte »
Reply

Marsh Posté le 11-01-2006 à 20:12:10    

Si tu veux le nombre de titre par catégorie en affichant le nom de la catégorie, alors oui, il faudra faire une jointure ("left outer join table2 on ..." avec mysql) ou une simple liaison avec dans le where la condition permettant de dire comment relier les deux tables (select ... from table1,table2 where table1.id=table2.id ...)
 
Si t'as du mal avec les requettes sql par manque d'expérience, alors le mieux, c'est de lire des tutoriels et de tester par exemple dans phpmyadmin pour voir le résultat. Tu véras, il y a pas tant de chôse que ça à conaitre en sql avant de réussir plus de 95% des chôses dont on a besoin en temps normal.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed