Bonjour, après m'être bien entraîné avec HTML et CSS, j'ai commencé à apprendre le PHP. Jusqu'à maintenant, les problèmes que j'avais, j'ai réussi à les régler seul mais aujourd'hui je rencontre un problème pour réaliser le TP où il faut faire un blog.
Mon problème est au niveau de l'ajout de commentaires, je vous explique ce que j'ai fait et où il y a un soucis :
J'ai fait une page blog.php qui fonctionne parfaitement, les articles s'affichent bien, j'ai également mis de quoi ajouter des articles depuis la page et ça fonctionne parfaitement. Pour chaque article il y a un lien "Commentaires" qui mènent à une page commentaires.php qui affiche parfaitement l'article avec en dessous les commentaires. Le problème est ici, j'ai essayé d'ajouter de quoi ajouter des commentaires directement depuis cette page mais malgré mes essais, j'ai toujours des erreurs.
Je pense que mon soucis est que je ne comprends pas comment récupérer l'id de l'article qui est dans la page actuelle. J'ai essayé différentes choses mais rien ne fonctionne. Je n'ai pas envie de passer trop longtemps sur ce TP car il me reste encore beaucoup à apprendre mais pour moi c'est indispensable de savoir faire ça.
Si vous pouvez m'aider, je vous en serait très reconnaissant.
Mon problème se trouve au niveau de commentaires.php et commentaires_post.php, je vous ai aussi donné blog.php et blog_post.php au cas où ça vous donne plus d'informations pour régler mon problème.
Je n'ai pas sécurisé mon code avec htmlspecialchars, je sais que je suis censé le faire mais étant donné que c'est du local, j'ai préféré ne pas le mettre pour rendre mon code moins chargé.
Je suis également sur le même problème actuellement.
Je publie mes codes comme le tiens : mon problème c'est que j'ai fait des requetes préparés mais que les commentaires ne s'enregistre pas.
De plus, le //header('Location: commentaires.php?billet='.$_POST['billet']); ne donne pas la valeur du dernier billet pour la redirection.
remarquer que j'ai ajouté un champ hidden avec comme valeur le numero du blog dans un variable $_GET donc à ce que je pense, il doit être renvoyé dans $_POST['billet'] chez commentaires_post.php. ceci afin de rediriger sur la meme page.
Merci, ça fonctionne parfaitement pour moi, j'ai ajouté le champ hidden comme toi et j'ai modifié le header().
Pour ton problème, je pense que le problème est que dans ton commentaires_post.php, les VALUES sont mauvaises, essaye en remplaçant ":id_billet, :auteur, :commentaire, NOW()" par "?, ?, ?, NOW()" Je pense que ça devrait fonctionner.
Bonne soirée.
Je vais attendre que ton problème soit résolu pour marquer le sujet comme résolu.
Après plusieurs pause de déloupage, j'ai trouvé que mon nom de table était miniblog_commentaires mais pas simplement commentaires.
De plus, merci pour l'idée de action="commentaire_post.php?billet=<?php echo $donnees['id']; ?> je n'ai pas cette idée et j'ai toujours de l'erreur sur le header('Location: commentaires.php?billet='. $_GET['billet']);.
si vous utiliser la méthode PDO pour vous connecter à la base de données vous pouvez relier l'id de la table commentaires avec id_article (par exemple) utilisé la requête avec la méthode JOINelle permet de donner un alias à vos nom de table et les champs que vous souhaiter relier comme ca on peut afficher les commentaire sur la page des article et on rajoutant la fonction toggle() de Jquery vous pouvez cacher et afficher la liste des commentaire
PS: j'espere avoir participer à l'amélioration de ce sujet
voici comment on utilise JOIN:
SELECT [alias1.]champ1, [alias2.]champ2… listeDesChamps
FROM [nomBase.]nomTable1 [{ INNER | { LEFT | RIGHT } [OUTER] }]
JOIN [nomBase.]nomTable2{ ON condition | USING ( colonne1 [, colonne2]... )}
| { CROSS JOIN | NATURAL [{ LEFT | RIGHT } [OUTER] ]
JOIN [nomBase.]nomTable2 } …
[ WHERE condition ];
- Edité par souhailettaoussi 29 mai 2017 à 3:21:39
Tutoriel complet MySQL !