Page 1 sur 6

pb: affichage des message de mon forum

Posté : 26 déc. 2006, 14:12
par DuK3
Voila j'ai réalisé un forum et mon probleme c'est lorsque que je clic sur un sujet il m'affiche le contenu de tout les sujets et non celui sur laquel j'ai cliqué!
Exemple :
Mon forum http://duk3killer.club.fr//index.php?option=com_forum
Un des sujet http://duk3killer.club.fr//index.php?op ... e.php?id=1
Si quelqu'un pourrait m'aidé sa serait super cool nésité pas a me demander du code.
Merci

Posté : 26 déc. 2006, 14:23
par charabia
Du code serait en effet bienvenue lol

Récupères-tu bien le ID passé en URL ?

Posté : 26 déc. 2006, 14:37
par DuK3
Voila le code de ma page forum:

Code : Tout sélectionner

<? //---------------------------------------------------------------- // // Page d'affichage des sujets, auteurs, dates // index.php // //---------------------------------------------------------------- $mysql_host = 'localhost'; // entrer votre hôte ici $mysql_user = 'root'; // entrer votre login $mysql_password = ''; // entrer votre password $mysql_base = 'site'; // entrer le nom de votre base //---------------------------------------------------------------- //on se connecte à la base de donnée $db = mysql_connect($mysql_host,$mysql_user,$mysql_password) or die ("erreur de connexion"); //sélection de votre base de donnée mysql_select_db($mysql_base,$db) or die ("erreur de connexion base"); //la requête de sélection des messages , remarqué la clause where, on sélectionne seulement les sujets dont le champ reponse_id est vide , j'ai fixé ici une limite de sortie à 50 sujets, à vous de choisir celle que vous souhaité, ou de vous servir du cours n°20 ;-) $req = mysql_query("SELECT id,date,pseudo,email,sujet from forum_tbl where reponse_id ='' Order by date_verif Desc Limit 0, 50 ") or die ("erreur requete"); //on ressort le contenu en boucle, et on stock dans un tableau avec mysql_fetch_array while( $forum = mysql_fetch_array ($req)) { //on affiche le résultat, dans le liens hypertexte du sujet, on passe par l'url l'id original du sujet, de façon a sélectionner celui et les réponse dans la page lecture.php print '<a href="http://duk3killer.club.fr/index.php?option=com_lecture&lecture.php?id='.$forum[id].'">'.$forum[sujet].'</a> -Auteur : <a href="mailto:'.$forum[email].'">'.$forum[pseudo].'</a> posté le : '.$forum[date].'<br>'; print '<hr>'; } //on referme la connexion mysql_close(); include('nouveau.php'); // on inclus le formulaire pour les nouveaux sujets. //----------------- FIN DE LA PAGE INDEX-------------------------------- ?>

Posté : 26 déc. 2006, 14:41
par charabia
As-tu testé la récupération de l'ID ? Fait juste un echo.

Posté : 26 déc. 2006, 14:43
par DuK3
:shock: heuu lol dans le code que j'ai filer ou je doit mettre sa??

Posté : 26 déc. 2006, 14:48
par charabia
Je viens de voir quelque chose de très bizarre dans ton URL :

Code : Tout sélectionner

http://duk3killer.club.fr//index.php?option=com_lecture&lecture.php?id=4
Déjà tu as un / en trop. Ensuite tu as 2 pages php dans l'URL ?? Y a comme un souci je pense.

Posté : 26 déc. 2006, 14:55
par DuK3
ouai enfin le "/" gene pa normalement mais je vais lenlever quand meme. Et pour les 2 pages php en fait c'est la meme page dans le dossier com_lecture il y a seulement lecture.php et je c'est pa exactement comment recupéré juste le ID

Posté : 26 déc. 2006, 15:00
par charabia
Non ça ne gêne pas mais c'est quand même une erreur à corriger ;)

Pour récupérer l'id avec la même page tu fais juste :

Code : Tout sélectionner

http://duk3killer.club.fr/index.php?option=com_lecture&id=4
tout simplement. Là tu passes 2 variables mais tu peux utiliser celle que tu veux et où tu veux.

Posté : 26 déc. 2006, 15:04
par DuK3
Ouai ok j'avait pensé a sa... mais le probleme c'est que lorsque je rentre sa dans L'URL le message ne s'affiche pas lol. :?

Posté : 26 déc. 2006, 15:08
par charabia
Ouai ok j'avait pensé a sa... mais le probleme c'est que lorsque je rentre sa dans L'URL le message ne s'affiche pas lol. :?
C'est un peu normal...dans ta requête l'ID passé en variable n'est utilisée nulle part dans la clause WHERE.

Posté : 26 déc. 2006, 15:09
par DuK3
http://duk3killer.club.fr/index.php?opt ... cture&id=1 marche bizarement car je vien de voir que dans ma base SQL jai reponse id_reponse=1 o lieu de prendre id tout cours

Posté : 26 déc. 2006, 15:12
par charabia
Oui c'est normal. Il faut que dans ta requête tu ais quelque chose de ce genre :
id_reponse=".$_GET['id'];

Posté : 26 déc. 2006, 15:15
par DuK3
J'ai sa dans ma page lecture je pense que l'erreur vien de reponse_id??car lorsque que l'on fé le lien plus haut avec id=1 sa nous renvoi la reponse_id=1

Code : Tout sélectionner

$rep = mysql_query("SELECT id,date,pseudo,email,sujet,message from forum_tbl where reponse_id ='$_GET[id]' ") or die ("erreur requête reponse ")

Posté : 26 déc. 2006, 15:19
par charabia
En fait tu te mélanges un peu dans tes pages. Tu as bien 2 pages différentes, l'index et la page lecture. Chacune contient une requête différente je suppose.

Donc dans ta page index tu laisses ce que tu avais fait vu que ça marchait. Il te faut juste modifier les liens :
{ 

//on affiche le résultat, dans le liens hypertexte du sujet, on passe par l'url l'id original du sujet, de façon a sélectionner celui et les réponse dans la page lecture.php 
print '<a href="lecture.php?id='.$forum[id].'">'.$forum[sujet].'</a> -Auteur : <a href="mailto:'.$forum[email].'">'.$forum[pseudo].'</a> posté le : '.$forum[date].'<br>'; 
print '<hr>'; 
}
Et dans la page lecture, c'est là où tu feras ta requête avec le $_GET['id']

Posté : 26 déc. 2006, 15:27
par DuK3
Oki maintenant sa marche mais j'ai modifier sa dans lecture.php:

Code : Tout sélectionner

$rep = mysql_query("SELECT id,date,pseudo,email,sujet,message from forum_tbl where reponse_id ='$_GET[id]' ") or die ("erreur requête reponse ");
en sa :


Code : Tout sélectionner

$rep = mysql_query("SELECT id,date,pseudo,email,sujet,message from forum_tbl where id ='$_GET[id]' ") or die ("erreur requête reponse ");