Un systeme de "réponse" aux commentaires
Posté : 28 mai 2012, 15:35
Bonjour à tous,
J'ai deux requetes SQL différentes:
- L'une vérifie que le champs id_reponse soit égale à 0 si telle est le cas, c'est considéré comme un commentaire standard (non une réponse).
- L'autre fait la même vérification de id_reponse mais que ce champ est une valeur égale à l'id principale du commentaire qui s'y raccorde (qui s'auto-incrémente), si ce cas se présente, c'est considéré comme une réponse et le bloc html est inséré sous le commentaire standard (voir code du poste précédent).
La petite subtilité, *j'ai oublié de le précisé* c'est que j'ai un bouton du type: "repondre" sur chaque commentaire qui se trouve dans la boucle parcourant toute ma table "commentaires", donc un id différent par commentaire, et ce bouton ne me sert pas qu'à "répondre" à proprement parlé mais il dispose aussi d'une redirection de type #ancre qui mène sur le formulaire.
Mon raisonnement actuelle :
Les boutons sont tous les mêmes, ils sont créés autant de fois qu'il y a de commentaire (boucle while qui parcours ma table), si je place un <?php echo $data['id']; ?> dans le bouton, je vais avoir l'id sur chaque bouton
EXEMPLE
Sur mon exemple on voit clairement les id des champs commentaires au niveau des boutons. Il y a un exemple de réponse en bas, j'ai inséré manuellement la valeur de l'id du champ commentaire du dessus à savoir 69. Et cela a pour conséquence de placé le commentaire en tant que réponse (grâce à ma requête qui vérifie que id_reponse = id). Le problème c'est que j'aimerais récupéré l'id du champ commentaire au clic, et l’insérer dans ma mon champs "id_reponse" au submit uniquement sous conditions :
Ici la deuxieme requête INSERT aussi dans le champs "id_reponse" l'id du commentaire auquel il se raccorde, comme ça il sera placé correctement.
Voila comment je raisonne c'est peut être pas la bonne technique, probablement car je ne parviens pas à faire cela étant donné qu'on demande à ce que des valeurs soit récupérés dynamiquement alors qu'il s'agit là de php... J'ai bien essayé avec AJAX mais en vain, je ne m'y connais pas trop
J'ai deux requetes SQL différentes:
Code : Tout sélectionner
SELECT * FROM commentaires WHERE commentaires.id_articles='.$id_article_get.' AND commentaires.id_reponse=0 ORDER BY commentaires.id DESCCode : Tout sélectionner
SELECT * FROM commentaires WHERE commentaires.id_articles='.$id_article_get.' AND commentaires.id_reponse='.$data['id'].' ORDER BY commentaires.idLa petite subtilité, *j'ai oublié de le précisé* c'est que j'ai un bouton du type: "repondre" sur chaque commentaire qui se trouve dans la boucle parcourant toute ma table "commentaires", donc un id différent par commentaire, et ce bouton ne me sert pas qu'à "répondre" à proprement parlé mais il dispose aussi d'une redirection de type #ancre qui mène sur le formulaire.
Mon raisonnement actuelle :
Les boutons sont tous les mêmes, ils sont créés autant de fois qu'il y a de commentaire (boucle while qui parcours ma table), si je place un <?php echo $data['id']; ?> dans le bouton, je vais avoir l'id sur chaque bouton
EXEMPLE
Sur mon exemple on voit clairement les id des champs commentaires au niveau des boutons. Il y a un exemple de réponse en bas, j'ai inséré manuellement la valeur de l'id du champ commentaire du dessus à savoir 69. Et cela a pour conséquence de placé le commentaire en tant que réponse (grâce à ma requête qui vérifie que id_reponse = id). Le problème c'est que j'aimerais récupéré l'id du champ commentaire au clic, et l’insérer dans ma mon champs "id_reponse" au submit uniquement sous conditions :
Code : Tout sélectionner
if($valid)
{
if ($reply == '')
{
$req2 = $bdd->prepare('INSERT INTO commentaires (pseudo, email, website, contenu, id_articles) VALUES (:pseudo, :email, :website, :commentaire, :idarticles)');
$req2->execute(array(':pseudo'=>$pseudo, ':email'=>$email, ':website'=>$web, ':commentaire'=>$commentaire, ':idarticles'=>$idarticles));
$req2->closeCursor();
unset($pseudo);
unset($commentaire);
echo '<script language="Javascript">document.location.replace("...");</script>';
}
else
{
$req2 = $bdd->prepare('INSERT INTO commentaires (pseudo, email, website, contenu, id_articles, id_reponse) VALUES (:pseudo, :email, :website, :commentaire, :idarticles, :reply)');
$req2->execute(array(':pseudo'=>$pseudo, ':email'=>$email, ':website'=>$web, ':commentaire'=>$commentaire, ':idarticles'=>$idarticles, ':reply'=>id));
$req2->closeCursor();
unset($pseudo);
unset($commentaire);
echo '<script language="Javascript">document.location.replace("...");</script>';
}
}Voila comment je raisonne c'est peut être pas la bonne technique, probablement car je ne parviens pas à faire cela étant donné qu'on demande à ce que des valeurs soit récupérés dynamiquement alors qu'il s'agit là de php... J'ai bien essayé avec AJAX mais en vain, je ne m'y connais pas trop