par
shakuro » 28 mai 2012, 15:35
Bonjour à tous,
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 DESC
- 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).
Code : Tout sélectionner
SELECT * FROM commentaires WHERE commentaires.id_articles='.$id_article_get.' AND commentaires.id_reponse='.$data['id'].' ORDER BY commentaires.id
- 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 :
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>';
}
}
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

Bonjour à tous,
J'ai deux requetes SQL différentes:
[code]SELECT * FROM commentaires WHERE commentaires.id_articles='.$id_article_get.' AND commentaires.id_reponse=0 ORDER BY commentaires.id DESC[/code]
- 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).
[code]SELECT * FROM commentaires WHERE commentaires.id_articles='.$id_article_get.' AND commentaires.id_reponse='.$data['id'].' ORDER BY commentaires.id[/code]
- 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 [i](voir code du poste précédent)[/i].
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.
[b]Mon raisonnement actuelle :[/b]
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
[url=http://hpics.li/ea08abb]EXEMPLE[/url]
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]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>';
}
}[/code]
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 :(