Vous n'êtes pas identifié(e).
Pages : 1
excusez-moi, j'ai raconté n'importe quoi !
ça fonctionne, en faisant comme ceci :
Requête :
[code PHP]
mysql_select_db($database_base, $base);
$query_Recordset2 = "SELECT cat_telech.id, cat_telech.titre, COUNT(telechargement.cat) AS nbdocs FROM cat_telech LEFT JOIN telechargement ON telechargement.cat=cat_telech.id GROUP BY cat_telech.id";
$Recordset2 = mysql_query($query_Recordset2, $base) or die(mysql_error());
$row_Recordset2 = mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 = mysql_num_rows($Recordset2);
[/code]
Affichage :
[code PHP]
<?php
do { ?>
<p><a href="telechargement2.php?id=<?php echo $row_Recordset2['cat_telech.id']; ?>"><?php echo $row_Recordset2['titre']; ?></a> <?php echo $row_Recordset2['nbdocs']; ?></p>
<?php } while ($row_Recordset2 = mysql_fetch_assoc($Recordset2)); ?>[/code]
Ouf !
bon, on peut améliorer je pense !
Merci en tout cas de votre aide !
ou alors faire une seule requête, je pense que c'est mieux, mais j'ai essayé d'ajouter dans la requête de Kris les champs t.id et t.titre et ça plante...
ha ben oui, je fais pas de boucle sur le recordset 2 mais sur le 1, donc il affiche uniquement le premier résultat de la requête et ce pour chaque ligne!
je dois inclure une deuxième boucle ?
j'ai fait le test sous phpmyadmin, et là ça fonctionne, nbdocs représente bien le nombre correct de documents par catégorie.
le problème doit donc venir de ma boucle pour l'affichage.
je vais regarder de ce côté là.
Me voici de retour avec de mauvaises nouvelles !
J'ai utilisé le code proposé par Kris et ça donne le même résultat qu'avant, à savoir le nombre 10 à coté de chaque ligne...
voici mon select, j 'ai peut-être fait une erreur ? :
[code php]
SELECT cat_telech.id, cat_telech.titre, COUNT(*) AS nbdocs
FROM cat_telech
LEFT JOIN telechargement
ON telechargement.cat=cat_telech.id
GROUP BY cat_telech.id[/code]
Merci beaucoup pour les explications, et le temps passé à les donner !
Je vais essayer tout ça, assimiler les connaissances, et je reviens vous dire ce qu'il en est !
re xTG,
j'ai essayé avec cat_telech.id, ça donne toujours le nombre 10 à côté de chaque ligne...
ha, pour le "nombre" j'ai trouvé ce que c'est :
MySQL a étendu l'utilisation de la clause GROUP BY . Vous pouvez utiliser des noms de colonnes ou des expressions qui n'apparaissent pas dans la clause GROUP BY . Elles prennent alors n'importe quelle valeur possible dans ce groupe .
C'est cela ?
salut Kris,
en l'occurrence, ça veut dire quoi ?
alors j'ai essayé comme ceci :
[code php]
mysql_select_db($database_perene, $perene);
$query_Recordset2 = "SELECT cat_telech.titre, COUNT(telechargement.id) AS nombre
FROM cat_telech INNER JOIN telechargement
ON cat_telech.id = telechargement.cat
GROUP BY telechargement.cat";
$Recordset2 = mysql_query($query_Recordset2, $perene) or die(mysql_error());
$row_Recordset2 = mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 = mysql_num_rows($Recordset2);[/code]
et pour l'affichage :
[code php]
<?php echo $row_Recordset2['nombre']; ?>[/code]
(j'ai essayé d'utiliser le "nombre")
résultat : ça me met "10" à côté de chaque ligne.
doit y avoir un bug, héhé!
Merci bcp!
je vais essayer ça et je te redis.
à la première ligne, que représente "nombre" ? c'est un champs?
ok merci, j'ai regardé la doc du group by, ça me donne plus d'infos pour continuer !
alors voici ma réflexion :
déjà mes tables:
les catégories sont dans la table "cat_telech", avec les champs : id, titre
les documents sont dans la table "telechargement", avec les champs : id, titre, fichier, cat (qui reprend le n° de catégorie).
il faudrait donc faire la requete suivante :
SELECT Count(*) FROM telechargement GROUP BY cat
Question : comment afficher le bon numéro à côté de chaque catégorie? avec un WHERE?
Bonjour à tous!
je suis nouvellement inscrit sur ce forum car j'ai un petit souci dans une requête.
j'affiche une liste de catégories dans une page php. Chaque éléments de cette liste est un lien vers une page de détails, où l'on trouve les documents faisant partie de la catégorie choisie.
A côté de chaque catégorie, j'aimerais afficher le nombre de documents qui en font partie.
J'ai regardé du côté de la fonction Count, mais j'ai du mal à comprendre comment cela fonctionne.
Pour l'instant, j'ai la requête suivante :
et j'affiche les catégories comme ceci :
Si quelqu'un a une piste, ce serait sympa !
Merci à vous de m'avoir lu !
Pages : 1