Recuperer un id avec $_GET
satoshioctav
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
bonjour
je fais un espace commentaire sur des blog sur une page différente que les blog, du coup j'ai dans ma base de donnees commentaire un champs id_billet qui est censé correspondre au id du blog et dans ma classe qui traite l'ajout de comentaire le billet id_billet correspond a $_GET['id'] j'ai bien entendu envoyé le id du billet dublog via l'url mais le commentaire ne se rajoute pas voici les code;
l'envoie du id par l'url
le traitement de l'ajout de commentaire
le formulaire d'ajout de commentaire
merci de votre aides
je fais un espace commentaire sur des blog sur une page différente que les blog, du coup j'ai dans ma base de donnees commentaire un champs id_billet qui est censé correspondre au id du blog et dans ma classe qui traite l'ajout de comentaire le billet id_billet correspond a $_GET['id'] j'ai bien entendu envoyé le id du billet dublog via l'url mais le commentaire ne se rajoute pas voici les code;
l'envoie du id par l'url
<a href="../commentaire_blog/indexcommentaire.php?id=<?php echo $blog->id();?>" >commentaire</a><br>
le traitement de l'ajout de commentaire
public function add(commentaire_blog $commentaire) { $req = $this->db->prepare('INSERT INTO commentaire (id_billet, auteur, contenu, date_commentaire) VALUE (:id_billet, :auteur, :contenu, NOW())'); $req->bindValue(':id_billet',(int)$_GET['id']); $req->bindValue(':auteur', $commentaire->auteur(PDO::PARAM_STR)); $req->bindValue(':contenu', $commentaire->contenu(PDO::PARAM_STR)); $req->execute(); }
le formulaire d'ajout de commentaire
<!DOCTYPE html> <html> <head> <title>commentaire</title> </head> <body> <a href="../billet_blog/indexblog.php">retourné</a> <form action="indexcommentaire.php" method="post"> <input type="text" name="nom" placeholder="nom"><br> <textarea rows="4" cols="30" placeholder="laisser votre commentaire" name="commentaire"></textarea><br> <input type="submit" name="action" value="ajouter" > </form> <?php require '../billet_blog/managerblog.php'; require 'manager_commentaire.php'; require 'commentaire_blog.php'; try { $db = new PDO('mysql:host=localhost;dbname=test;charset = utf8','root',''); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } $manager = new manager_commentaire($db); if (isset($_GET['id'])) { if (isset($_POST['nom']) && isset($_POST['commentaire'])) { $commentaire = new commentaire_blog($_POST['nom'],$_POST['commentaire']); $manager->add($commentaire); echo 'le commentaire a bien été ajouter'.'<br>'; } else { echo 'Erreur: l\'ajout de commentaire a echoué'.'<br>'; } } $commentaires = $manager->get(); foreach ($commentaires as $commentaire) { echo $commentaire->auteur().'<br>'; echo $commentaire->contenu().'<br>'; echo $commentaire->date_commentaire().'<br><br><br>'; } ?> </body> </html>
merci de votre aides
1 réponse
Ca ne sert à rien d'ouvrir tes questions en double sur le forum....
Tu as déjà posé ta question ici : https://forums.commentcamarche.net/forum/affich-35758814-fonction-update-qui-fontionne-pas
Ce à quoi je t'ai répondu :
Et ça :
et enfin ça :
Force est de constater que tu n'as tenu compte d'aucune de ces remarques .....
Ne t'étonne pas alors de ne pas y arriver !
Donc commence par suivre scrupuleusement ce qu'on te dit... et tu devrais trouver la solution à ton problème !
NB: La prochaine fois, je supprime TOUTES les discussions ouvertes en double !
Tu as déjà posé ta question ici : https://forums.commentcamarche.net/forum/affich-35758814-fonction-update-qui-fontionne-pas
Ce à quoi je t'ai répondu :
Vu que tu fais du PDO.. gère les éventuelles erreurs ... https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Et ça :
Il serait bien également de récupérer proprement les variables AVANT de les utiliser. (je t'invite à lire ceci : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code)
et enfin ça :
as tu essayé de voir ce que contenait ta variable
$_GET et ta variable $_POST lorsque tu envoies pour modification ??
- Es-tu sûr d'entré dans ton IF ???? ( places y un echo voir si il s'affiche...).
Force est de constater que tu n'as tenu compte d'aucune de ces remarques .....
Ne t'étonne pas alors de ne pas y arriver !
Donc commence par suivre scrupuleusement ce qu'on te dit... et tu devrais trouver la solution à ton problème !
NB: La prochaine fois, je supprime TOUTES les discussions ouvertes en double !
et try-catch
Même si là c'est un INSERT....
Le try/catch à la connexion ne suffit pas.... il faut aussi en mettre à CHAQUE requête (comme cela est indiqué dans le lien que je t'ai donné).
Sans oublié l'activation de l'affichage des erreurs PHP....
Sans oublié de vérifier le contenu de tes variables (via des PRINT_R au début de ton script par exemple) et un echo dans le IF ...
Bref... reviens nous voir avec le code correctement modifié suite à mes remarques si le souci persiste....