Bonjour,
Je suis entrain de développer une page d'acceuil pour mon site , alors la page contient les dernières publications postées par les utilisateurs de ce site, et j'aimerai bien que les gens puissent commenter ses publications, alors j'ai ajouté un textarea pour le commentaire et un bouton 'ok' , j'ai une table nommée commentaire dans ma BD , (id_post,id_comment,contenu) , cependant les commentaires ne s'ajoutent pas dans ma BD , que doit-je faire pour affecter un tel commetaire à un tel post sachant que tous les publications s'affichent dans la même page.
Merci d'avance.

6 réponses


Il faudrait le schéma de ta base de donnée mais, le plus correct serait :

Une table Publication avec un ID, CONTENU, etc ...
Et, dans la table commentaire, un ID, COMMENTAIRE, et une clé étrangère en relation avec la table Publication (l'id).
Ensuite, il suffit de faire une simple jointure

SELECT * FROM Publication p, Commentaire c WHERE p.id  = c.id_commentaire AND p.id = 1

Le 1 est a remplacer avec l'id de la publication concernée.
Mais si tu souhaite SEULEMENT les commentaires par rapport à un ID :

SELECT * FROM Commentaire c WHEREc.id = 1

Le 1 est a remplacer avec l'id de la publication concernée.
Je te conseil de nommer tes clés etrangères de cette façon id_nomDeLaTableConcernée

Bonjour.
Tu pourrais par exemple t'inspirer de Tutoriel Vidéo PHP » Plugin de commentaire.

Sanae
Auteur

@MehdiKacim
Merci pour ta réponse, j'ai déja essayé avec cette reqûete, mais je ne peux pas indiquer l'id du post , car j'ai plusieurs post dans la page,
et je veux que chaque pub aura ces commentaires au dessous .
Et comme vous l'avez dit , j'ai une une table commentaire qui a une clé étrangère en relation avec la table post.

Dans ce cas là tu fais comme je te l'avais indiqué dans cet autre sujet.

Sanae
Auteur

@Lartak
Oui , j'ai essayé avec ce que vous m'avez dis pour l'autre sujet, mais dans ce cas là dans la même page j'ai tous les publications existantes , et pas une particulière pour que je puisse insérer dans ma table commentaire avec l'id envoyé en url.

Il te faut adapter l'exemple, au lieu de définir la valeur avec ce qui est passé en GET dans l'url, tu la définie avec la valeur de ta boucle qui liste les publications, exemple :

foreach ($posts as $post) {
    // affichage d'une publication
    // boucle des commentaires liés à la publication
    ?>
    <form action="...." method="post">
        <input type="hidden" name="id_post" value="<?= $post->id ?>"> // ici la valeur concernant la publication
        <textarea name="contenu" placeholder="..."></textarea>
        <button type="submit">Répondre</button>
    </form>
<?php }