Page 1 sur 2
Recupere le nombre de reponses dans un forum
Posté : 12 oct. 2006, 19:55
par pollux007
Bonjour,
je debute en php et je viens de realiser un petit avec du php deans et j'ai installer un forum en php.En fait je voudrais realiser un lien vers un post de mon forum et en même temps afficher le nomre de reponses dans le post.
Un exemple :
Laisser un commentaire(15 réponses)
J'arrive a faire le lien mais par contre je ne vois pas comment afficher le nombre de reponses.
J'ai installer un mod pour le forum (anywhere) mais ce n'est pas tout a fait ce que je recherche,donc je ne sais pas trop si c'est un mod ou bien du code a taper.
Quelqu'un connait il la sollution?
Merci
Posté : 12 oct. 2006, 20:34
par ouckileou
Tu récupères l'identifiant du sujet, et tu fais une bête requête SQL dessus :
Code : Tout sélectionner
SELECT COUNT(*) AS nb_reponses
FROM table_des_messages
WHERE colonne_id = 15
Posté : 15 oct. 2006, 13:49
par pollux007
Merci de ta reponse
mais j'ai un probleme et je ne sais pas si mon code est bon.
<?php
//connexion
$connexion=mysql_connect();
$ok=mysql_select_db("sessions",$connexion);
//requête
$sql = 'SELECT `phpbb_topics`.`topic_replies`'
. ' FROM phpbb_topics WHERE topic_replies=3';
//exécution de la requête
$nb=mysql_query($sql,$connexion);
echo "Laisser un comentaire ($nb réponses)";
?>
Posté : 15 oct. 2006, 15:02
par ouckileou
C'est quoi le problème ?
Faut que je devine le problème, et ensuite que je cherche la solution ?
Vous croyez qu'on a des yeux bionique et qu'on détecte la moindre erreur dans du code ?
Y'a un message d'erreur ? Un truc qui marche pas ? Développe un peu stp, et tu peux aller lire le sujet "Débug SQL" dans ma signature aussi, ça te sera utile.
Posté : 15 oct. 2006, 17:20
par pollux007
Oui excuse moi c'est vrai que j'aurais du laisser les message d'erreurs.
Mais en cherchant je crois que j'ai reussi a trouver ce que je voulais mais le probleme est que le resultat ne s'incremente pas automatiquement.
Voici mon code
<?php
//connexion
$connexion=mysql_connect('localhost','root','') or die ('erreur de connexion');
$ok=mysql_select_db("sessions",$connexion);
//requête
$sql ="SELECT`topic_replies` FROM `phpbb_topics` WHERE `topic_id` = 2";
//exécution de la requête
$resultat =mysql_query($sql);
//recuperation de la valeur
$nb =mysql_num_rows($resultat);
echo "Laisser un commentaire (".$nb." réponses)";
?>
Et voici ce que cela affiche
Laisser un commentaire (1 réponses)
Pourtant dans ma table j'ai rajoute une deuxième réponses.
Posté : 15 oct. 2006, 17:21
par ouckileou
Où est passé le COUNT(*) ?
Utilise le plutôt que mysql_num_rows()
Et avant de tester dans PHP, essaie ta requête dans phpMyAdmin. Quand tu auras la bonne requête qui te renvoie ce que tu veux, alors tu l'insèreras dans PHP
Posté : 15 oct. 2006, 17:40
par pollux007
Le problême est que avec le COUNT (*) j'ai un message d'erreur avec phpmyadmin.
Ou bien je tape une mauvaise requete
Posté : 15 oct. 2006, 17:41
par ouckileou
Le problême est que avec le COUNT (*) j'ai un message d'erreur avec phpmyadmin.
Ou bien je tape une mauvaise requete
ça doit être ça oui
Donc tu restes dans phpMyAdmin, on met au point cette requête sans s'occuper de PHP.
Tu nous donnes la requête que t'as essayée ? Pis le message d'erreur aussi tiens c'est utile parfois

Posté : 15 oct. 2006, 17:46
par pollux007
Bon en fait je laissait un espace entre COUNT et le (*) donc c'est pour ca que j'avais une erreur. lol
Mais ensuite le résultat qui s'affiche n'est pas le bon, donc je me demande si le topic_id=2 est bon ou pas car dans la table j'ai 3 réponses et en effectuant la requete sql mon résultat est de 1.
Posté : 15 oct. 2006, 18:00
par ouckileou
On peut voir la requête ? On ne pourra pas te dire grand chose sur ce qui ne va pas sans savoir ce que tu fais...
Posté : 15 oct. 2006, 18:02
par pollux007
Voici mon code que je rentre dans phpmyadmin
Code : Tout sélectionner
SELECT COUNT(*) AS `topic_replies` FROM `phpbb_topics` WHERE `topic_id` = 2
Posté : 15 oct. 2006, 18:05
par ouckileou
Si c'est un forum phpbb tu as directement la colonne "topic_replies" dans la table "phpbb_topics"
Posté : 15 oct. 2006, 18:10
par pollux007
Si c'est un forum phpbb tu as directement la colonne "topic_replies" dans la table "phpbb_topics"
Oui je sais mais pour choisir la bonne ligne il faut bien utiliser la colonne topid_id non?
Posté : 15 oct. 2006, 18:14
par ouckileou
Oui mais du coup tu n'as pas besoin du COUNT(*)
Count(*) sert à compter le nombre delignes, j'avais dit ça en pensant compter les lignes de messages liées à un topic simplement. Mais là ut peux sélectionner directement la colonne donc :
Posté : 15 oct. 2006, 20:54
par pollux007
C'est bizare dans sql la requete m'affiche bien la bonne valeur mais des que je passe dans php il m'afiche un resultat de 1
Voici mon code au final:
<?php
//connexion
$connexion=mysql_connect('localhost','root','') or die ('erreur de connexion');
$ok=mysql_select_db("sessions",$connexion);
//requête
$sql='SELECT topic_replies FROM phpbb_topics WHERE topic_id=2';
//exécution de la requête
$resultat=mysql_query($sql);
//recuperation de la valeur
$nb=mysql_num_rows($resultat);
echo "Laisser un commentaire ($nb réponses)";
?>
Et il m'affiche un resultat de 1 et pourtant la valeur dans la table est de 4.
[/code]