pb: affichage des message de mon forum

DuK3
Invité n'ayant pas de compte PHPfrance

26 déc. 2006, 14:12

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

Avatar du membre
ViPHP
ViPHP | 3008 Messages

26 déc. 2006, 14:23

Du code serait en effet bienvenue lol

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

DuK3
Invité n'ayant pas de compte PHPfrance

26 déc. 2006, 14:37

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

Avatar du membre
ViPHP
ViPHP | 3008 Messages

26 déc. 2006, 14:41

As-tu testé la récupération de l'ID ? Fait juste un echo.

DuK3
Invité n'ayant pas de compte PHPfrance

26 déc. 2006, 14:43

:shock: heuu lol dans le code que j'ai filer ou je doit mettre sa??

Avatar du membre
ViPHP
ViPHP | 3008 Messages

26 déc. 2006, 14:48

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.

DuK3
Invité n'ayant pas de compte PHPfrance

26 déc. 2006, 14:55

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

Avatar du membre
ViPHP
ViPHP | 3008 Messages

26 déc. 2006, 15:00

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.

DuK3
Invité n'ayant pas de compte PHPfrance

26 déc. 2006, 15:04

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

Avatar du membre
ViPHP
ViPHP | 3008 Messages

26 déc. 2006, 15:08

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.

DuK3
Invité n'ayant pas de compte PHPfrance

26 déc. 2006, 15:09

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

Avatar du membre
ViPHP
ViPHP | 3008 Messages

26 déc. 2006, 15:12

Oui c'est normal. Il faut que dans ta requête tu ais quelque chose de ce genre :
id_reponse=".$_GET['id'];

DuK3
Invité n'ayant pas de compte PHPfrance

26 déc. 2006, 15:15

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

Avatar du membre
ViPHP
ViPHP | 3008 Messages

26 déc. 2006, 15:19

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']

DuK3
Invité n'ayant pas de compte PHPfrance

26 déc. 2006, 15:27

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