compté le nombre de réponses dans un forum

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : compté le nombre de réponses dans un forum

Re: compté le nombre de réponses dans un forum

par fabrice88250 » 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"); 

Re: compté le nombre de réponses dans un forum

par stealth35 » 02 juin 2010, 23:55

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

Re: compté le nombre de réponses dans un forum

par fabrice88250 » 02 juin 2010, 23:48

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

Re: compté le nombre de réponses dans un forum

par fabrice88250 » 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';
				}
			}

Re: compté le nombre de réponses dans un forum

par stealth35 » 02 juin 2010, 19:02

group par forum_sujets.id alors

Re: compté le nombre de réponses dans un forum

par fabrice88250 » 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.

Re: compté le nombre de réponses dans un forum

par stealth35 » 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

Re: compté le nombre de réponses dans un forum

par fabrice88250 » 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"

Re: compté le nombre de réponses dans un forum

par stealth35 » 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 ?

Re: compté le nombre de réponses dans un forum

par fabrice88250 » 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...

Re: compté le nombre de réponses dans un forum

par stealth35 » 02 juin 2010, 18:05

ok bon de tout facon sa resoud pas le probleme qui est toujours le même.
non, faux mettre un COUNT dans ta requête ca marchera jamais sinon, c'est COUNT + GROUP BY

Re: compté le nombre de réponses dans un forum

par fabrice88250 » 02 juin 2010, 18:01

ok bon de tout facon sa resoud pas le probleme qui est toujours le même.

depuis ma page lire_sujet j'arrive pourtant bien a compté les réponses mais sur cette page pas besoin de jointure. Je pense que le probleme pourrait provenir de la jointure mais je suis incapable de dire pourquoi.
voilà le code sur ma page lire_sujet qui fonctionne.
	<?php
	// on prépare notre requête
	$sql = 'SELECT auteur, message, date_reponse FROM forum_reponses WHERE correspondance_sujet="'.$_GET['id_sujet_a_lire'].'" ORDER BY date_reponse ASC';
	// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
	$req = mysql_query($sql);
	//on conte le nombre de reponses:
	$nb_sujets = mysql_num_rows ($req);
	
if ($nb_sujets == 0) 
{
	echo 'Aucun sujet';
}
else {
//on soustrait au nombre total le message d'origine qui n'est pas un réponse
$nb_sujets = $nb_sujets-1;
echo '<h2><span class="orange">Nombre de réponse(s) pour ce sujet : </span><span class="bleu">' .$nb_sujets.'</span></h2>';
}
?>

Re: compté le nombre de réponses dans un forum

par stealth35 » 02 juin 2010, 17:59

non y'en a pas c'est une erreur

Re: compté le nombre de réponses dans un forum

par fabrice88250 » 02 juin 2010, 17:50

idem
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'reponses FROM forum_sujets LEFT JOIN forum_reponses ON forum_reponses . corres' at line 1
l'espace entre le num_ et reponse c'est exprès ?

Re: compté le nombre de réponses dans un forum

par stealth35 » 02 juin 2010, 17:46

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