compté le nombre de réponses dans un forum

Mammouth du PHP | 620 Messages

02 juin 2010, 18:12

ah... bon je croi que je vai laissé tomber car je suis dessus depuis ce matin et j'en suis toujours au nieau ou j'arrive pas a compté les réponses...

ViPHP
ViPHP | 5462 Messages

02 juin 2010, 18:14

et comme ca
SELECT *, COUNT(forum_reponses.id) AS num_reponses
FROM forum_sujets
LEFT JOIN forum_reponses ON forum_reponses.correspondance_sujet = forum_sujets.id
ca te donnais quoi ca dans ton phpmyadmin ?

Mammouth du PHP | 620 Messages

02 juin 2010, 18:31

Dans phpmyadmin plus d'erreur il me retourne :

id 1
auteur Fabrice
titre Recherche d'un titre
date_derniere_reponse 2010-06-02 15:29:54
id 1
auteur Fabrice
message Bonjour ! Est-ce que quelqu'un connait le titre de...
date_reponse 2010-05-25 18:08:21
correspondance_sujet 1
num_reponses 8

par contre si je met cette requet dans mon code en resultat j'ai partout "1 réponses"

ViPHP
ViPHP | 5462 Messages

02 juin 2010, 18:38

fais
SELECT *, COUNT(forum_reponses.id) AS num_reponses
FROM forum_sujets
LEFT JOIN forum_reponses ON forum_reponses.correspondance_sujet = forum_sujets.id
GROUP BY forum_reponses.correspondance_sujet
dis moi si ca marche la

Mammouth du PHP | 620 Messages

02 juin 2010, 18:53

je viens de faire l'essai. maintenant le resultat qui s'affiche partout correspond au nombre de sujet total sur le forum.

ViPHP
ViPHP | 5462 Messages

02 juin 2010, 19:02

group par forum_sujets.id alors

Mammouth du PHP | 620 Messages

02 juin 2010, 19:20

aaahhh depuis php my admin j'ai les bons resultats pour num_reponses :D
par contre au niveau de mon code et de l'affichage sur ma page j'ai tout les num_reponses qui s'affichent a chaque fois... pourquoi ?


j'ai fais comme ça :
	// on affiche le nombre de réponse de ce sujet
      $sqlrep = 'SELECT *, COUNT(forum_reponses.id) AS num_reponses FROM forum_sujets LEFT JOIN forum_reponses ON forum_reponses.correspondance_sujet = forum_sujets.id GROUP BY forum_sujets.id ';
      $reqrep = mysql_query($sqlrep) or die('<u>Probleme SQL</u> : '.$sqlrep.'<br>'.mysql_error());
	
		while($resultnum = mysql_fetch_array($reqrep))   
			{
			$num_reponses = $resultnum['num_reponses'];
			if ($num_reponses == 1) 
				{ 
				echo '0 réponse';
				}
			elseif ($num_reponses == 2)
				{
				echo '1 réponse';
				}
			else 
				{
				$num_reponses = $num_reponses - 1;
				echo $num_reponses.' réponses';
				}
			}

Mammouth du PHP | 620 Messages

02 juin 2010, 23:48

Pour faire simple voilà le resutat que j'ai :
voilà le resultat en image : Image

ViPHP
ViPHP | 5462 Messages

02 juin 2010, 23:55

parce que tu boucles le nombre de reponse, normalement en 1 seul requete tu peu creer ton tableau entier

Mammouth du PHP | 620 Messages

04 juin 2010, 09:33

bonjour,
oui j'ai refai une nouvelle requete et du coup je n'en ai plus qu'une seule mais j'ai le probleme de lauteur de la derniere rponse qui ne s'affiche pas.
$req = mysql_query("SELECT forum_sujets.id, forum_sujets.auteur, forum_sujets.titre, forum_sujets.date_derniere_reponse, forum_sujets.vue, forum_reponses.message, forum_reponses.auteur, forum_reponses.correspondance_sujet, COUNT(forum_reponses.id) AS num_reponses FROM forum_sujets INNER JOIN forum_reponses ON (forum_reponses.correspondance_sujet = forum_sujets.id) group by forum_sujets.id order by forum_sujets.date_derniere_reponse desc,forum_reponses.date_reponse desc");