Requête en cascade

Résolu/Fermé
cerco25 Messages postés 8 Date d'inscription mercredi 14 décembre 2016 Statut Membre Dernière intervention 10 juin 2017 - Modifié le 5 avril 2017 à 11:48
cerco25 Messages postés 8 Date d'inscription mercredi 14 décembre 2016 Statut Membre Dernière intervention 10 juin 2017 - 5 avril 2017 à 23:09
Bonjour,

J'ai un système de commentaire sur plusieurs étages, à chaque fois que j'ajoute un sous commentaire, il prendra comme valeur dans le champ parent_id, l'id du commentaire parent.
Je voudrais faire une requête pour gérer la suppression de commentaires en cascade sur une même table.

Ma table :

http://www.hostingpics.net/viewer.php?id=347873cascade.png

Par exemple, pour la gestion du troisième commentaire avec des sous-commentaire,
sous sous commentaire et sous sous sous commentaire lier :

Si je supprime le commentaire 3 (com_id = 3), supprimer les commentaires : 3-4-5-6-7-8-9-10

Si je supprime le commentaire 7 (com_id = 7), supprimer les commentaires : 7-9 et 10

ou si je supprime le commentaire 9 (com_id =9), de supprimer les commentaires : 9-10.

J'ai essayé de faire une requête avec une sous-requête ? mais je n'arrive pas à obtenir le résultat voulu.

Merci

2 réponses

yg_be Messages postés 23399 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 décembre 2024 Ambassadeur 1 556
5 avril 2017 à 21:17
Le plus simple, je pense, est de définir la contrainte entre les commentaires et leur parent par
FOREIGN KEY
avec
ON DELETE CASCADE
, et de laisser MySQL automatiquement propager les suppressions des parents vers les enfants.
Quelques explications ici:
https://openclassrooms.com/fr/courses/1959476-administrez-vos-bases-de-donnees-avec-mysql/1965264-options-des-cles-etrangeres
1
cerco25 Messages postés 8 Date d'inscription mercredi 14 décembre 2016 Statut Membre Dernière intervention 10 juin 2017
Modifié le 5 avril 2017 à 23:09
Salut, Merci, je viens de tester ça marche super bien.
0
yg_be Messages postés 23399 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 décembre 2024 Ambassadeur 1 556
5 avril 2017 à 21:03
bonsoir, pourquoi supprimer le 4 et le 5 quand tu supprimes le 3?
fais-tu cela en php, es-tu prêt à coder ta logique de suppression en php?
0
cerco25 Messages postés 8 Date d'inscription mercredi 14 décembre 2016 Statut Membre Dernière intervention 10 juin 2017
5 avril 2017 à 23:08
Effectivement, désoler, petite erreur.
0