Je suis en train de réaliser un forum pour mettre en pratique ce que j'ai appris en PHP et je rencontre un problème et j'ai aussi un petit doute que je détaillerai à la fin.
1- Mon problème
Mon (futur) forum est constitué de differents "topics" qui peuvent être écris pas les internautes. J'ai fais un formulaire pour créer les topic. Tous s'enregistre très bien dans la BDD et tous s'affiche très bien.
C'est pour écrire une réponse à un topic que je galère un peu plus. Mon problème c'est que rien ne s'écris dans la BDD et je ne comprends pas pourquoi...
Donc voici mon script pour afficher toute les réponses et à la suite de sa le formulaire pour en écrire une nouvelle :
<?php
session_start();
?>
<?php
include("connexion_bdd.php");
$reponse= $bdd->query('SELECT*
FROM forum_post
INNER JOIN forum_topic
ON forum_post.topic_id=forum_topic.topic_id
WHERE topic_id= $_POST[\'topic_id\']
ORDER BY post_id');
while ($donnees = $reponse)
{
echo $donnees['post_createur'];
echo $donnees['post_time'];
echo $donnees['post_texte'];
}
?>
<form method="post" action="traitement_creer_post.php">
Votre réponse: <textarea name="topic_post"> </textarea> </br>
<input type="hidden" name="topic_id" value="$_POST['topic_id']">
<input type="submit" value="Valider" />
</form>
et la page qui traite la nouvelle réponse ( et qui la rentre dans la BDD ) :<?php
session_start();
$_POST['topic_post']=htmlspecialchars($_POST['topic_post']);
include("connexion_bdd.php");
$req = $bdd->prepare('INSERT INTO forum_post ( post_createur, post_texte, post_time,topic_id)
VALUES( :post_createur, :post_texte, NOW()), :topic_id');
$req-> execute(array(
'post_createur'=> $_SESSION['pseudo'],
'post_texte'=> $_POST['topic_post'],
'topic_id'=> $_POST['topic_id']
));
echo ' Voter réponse a était ajouté ';
Donc voilà je pense que le problème est dans le second script mais où ? je ne sais pas... ( je précise qu'il n'y a aucun message d'erreur quand je le fais fonctionner !)et sinon j'ai un doute :
Lorsque je veux afficher les réponse au topic, il faut que j'affiche SEULEMENT les réponse au topic qui est regardé ! C'est pour cela que j'ai fais une jointure interne ! Mais je ne sais pas comment transmettre l'id du topic ar là je le transmets avec un methode trouvé sur un autre site web mais je ne suis pas très convaincu ( et je ne sais pas si elle marche ) si quelqu'un à un autre solution ! ....
Mes tables sont comme ceci :
FORUM_POST:
post_id
post_createur
post_texte
post_time
topic_id
et FORUM_TOPIC:
topic_id
topic_titre
topic_createur
topic_vu
topic_first_post
topic_post
Quelqu'un peu m'aider ?
Merci d'avance !
À très bientôt !