Recupere le nombre de reponses dans un forum

Eléphanteau du PHP | 17 Messages

12 oct. 2006, 19:55

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

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

12 oct. 2006, 20:34

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

Eléphanteau du PHP | 17 Messages

15 oct. 2006, 13:49

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)";
?>

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

15 oct. 2006, 15:02

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.

Eléphanteau du PHP | 17 Messages

15 oct. 2006, 17:20

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.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

15 oct. 2006, 17:21

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

Eléphanteau du PHP | 17 Messages

15 oct. 2006, 17:40

Le problême est que avec le COUNT (*) j'ai un message d'erreur avec phpmyadmin.
Ou bien je tape une mauvaise requete

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

15 oct. 2006, 17:41

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 :P

Eléphanteau du PHP | 17 Messages

15 oct. 2006, 17:46

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.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

15 oct. 2006, 18:00

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...

Eléphanteau du PHP | 17 Messages

15 oct. 2006, 18:02

Voici mon code que je rentre dans phpmyadmin

Code : Tout sélectionner

SELECT COUNT(*) AS `topic_replies` FROM `phpbb_topics` WHERE `topic_id` = 2

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

15 oct. 2006, 18:05

Si c'est un forum phpbb tu as directement la colonne "topic_replies" dans la table "phpbb_topics"

Eléphanteau du PHP | 17 Messages

15 oct. 2006, 18:10

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?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

15 oct. 2006, 18:14

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 :

Code : Tout sélectionner

SELECT topic_replies FROM phpbb_topics WHERE topic_id = 15

Eléphanteau du PHP | 17 Messages

15 oct. 2006, 20:54

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]