Problème requête DELETE

omlaly - 13 mars 2013 à 10:49
 omlaly - 22 mars 2013 à 08:21
Bonjour,

J'ai un problème avec une requête SQL DELETE. En effet, je voudrais faire une requête SQL pour pouvoir supprimer un article et ses commentaires éventuels.
J'ai fait une requête SQL DELETE avec une jointure entre les deux tables
Voici les CREATE TABLE des deux tables :
Articles
CREATE TABLE IF NOT EXISTS `articles` (
  `id_article` int(11) NOT NULL AUTO_INCREMENT,
  `nom_village` varchar(255) CHARACTER SET latin1 NOT NULL,
  `nom_categorie` varchar(255) CHARACTER SET latin1 NOT NULL,
  `date_depot` datetime NOT NULL,
  `titre_article` varchar(255) NOT NULL,
  `texte_article` text NOT NULL,
  `auteur_article` varchar(255) NOT NULL,
  PRIMARY KEY (`id_article`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=60 ;


Commentaires
CREATE TABLE IF NOT EXISTS `commentaires` (
  `id_commentaire` int(11) NOT NULL AUTO_INCREMENT,
  `user_pseudo` varchar(255) NOT NULL,
  `nom_village` varchar(255) NOT NULL,
  `nom_categorie` varchar(255) NOT NULL,
  `date_depot` datetime NOT NULL,
  `texte_commentaire` text NOT NULL,
  `id_article` int(11) NOT NULL,
  PRIMARY KEY (`id_commentaire`),
  KEY `FOREIGN KEY` (`id_article`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


Voici le code PHP (la requête SQL) :
$id_article=$donnees_messages['id_article'];

// Suppression de l'article et de ses éventuels commentaires
$req_suppression_commentaires = 
"DELETE articles,commentaires FROM articles,commentaires WHERE articles.id_article=commentaires.id_commentaire AND articles.id_article=".$id_article;

$query_alerte_email_nouvel_article = mysql_query($req_suppression_commentaires) or die ('Erreur sur la requête SQL concernant la suppression des articles et des commentaires correspondants'.mysql_error()); // Envoie une requête à un serveur MySQL
echo "Vous avez supprimé cet article et ses commentaires éventuels.

";


Voici l'erreur :
Erreur sur la requête SQL concernant la suppression des articles et des commentaires correspondantsYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1


Si vous voyez quelque chose, n'hésitez pas...

Cordialement

100 réponses

Ok, donc comment faire maintenant ?

Cordialement
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
20 mars 2013 à 15:19
Ben en écrivant une requête INSERT cohérente, avec des valeurs valides pour ta clé étrangère.
0
Actuellement, la requête SQL d'insertion des commentaires est :
$req_insertion_texte_commentaire_article = "INSERT INTO commentaires(user_pseudo, date_depot, texte_commentaire, id_article) VALUE ('$user_pseudo', now(), '$texte_commentaire_article', '$id_article')";


Faut-il que je supprime l'identifiant de l'article ?

Cordialement
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
20 mars 2013 à 15:56
Non, il faut que ta variable $id_article contienne une valeur correcte.
Tu devrais également utiliser la fonction mysql_real_escape_string pour ta variable $texte_commentaire_article si tu veux pas avoir de mauvaises surprises.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Voici le code PHP :
$texte_commentaire_article=mysql_real_escape_string($_POST["texte_commentaire_article"]);
$id_article=$_POST["id_article"];
echo $id_article;
// Enregistrement du pseudo de l'utilisateur (variable de session) pour pouvoir l'utiliser dans la requête INSERT INTO
$user_pseudo = $_SESSION["user_pseudo"];

// Insertion du commentaire dans la base de données
$req_insertion_texte_commentaire_article = "INSERT INTO commentaires(user_pseudo, date_depot, texte_commentaire, id_article) VALUE ('$user_pseudo', now(), '$texte_commentaire_article', '$id_article')";
$query_insertion_texte_commentaire_article = mysql_query($req_insertion_texte_commentaire_article) or die ('Erreur sur la requête SQL concernant l\'insertion des commentaires sur des articles'.mysql_error()); // Envoie une requête à un serveur MySQL
echo "Votre commentaire est posté.

";
}


Voici l'erreur :
3Erreur sur la Requête SQL concernant l'insertion des Commentaires sur des articlesCannot ajouter ou mettre à jour une ligne enfant: une contrainte de clé étrangère échoue (sgbdd `` `` Commentaires, CONSTRAINT `commentaires_ibfk_100` FOREIGN KEY (`articles id_commentaire`) REFERENCES ``. (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE)


Comme tu le vois, ça me renvoie le bon identifiant de l'article (3).

Cordialement
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
20 mars 2013 à 16:20
Montre moi le desc de ta table commentaires.
0
L'ordre décroissant ?

Voici le CREATE TABLE de cette table :

CREATE TABLE IF NOT EXISTS `commentaires` (
  `id_commentaire` int(11) NOT NULL AUTO_INCREMENT,
  `user_pseudo` varchar(255) NOT NULL,
  `nom_village` varchar(255) NOT NULL,
  `nom_categorie` varchar(255) NOT NULL,
  `date_depot` datetime NOT NULL,
  `texte_commentaire` text NOT NULL,
  `id_article` int(11) NOT NULL,
  PRIMARY KEY (`id_commentaire`),
  KEY `FOREIGN KEY` (`id_article`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

--
-- Contraintes pour les tables exportées
--

--
-- Contraintes pour la table `commentaires`
--
ALTER TABLE `commentaires`
  ADD CONSTRAINT `commentaires_ibfk_1` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_10` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_100` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_101` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_102` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_103` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_104` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_105` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_106` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_107` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_108` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_109` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_11` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_110` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_111` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_112` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_113` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_114` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_115` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_116` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_117` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_118` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_119` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_12` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_120` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_121` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_122` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_123` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_124` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_125` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_126` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_127` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_128` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_129` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_13` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_130` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_131` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_132` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_133` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_134` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_135` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_136` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_137` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_138` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_139` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_14` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_140` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_141` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_142` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_143` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_144` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_145` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_146` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_147` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_148` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_149` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_15` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_150` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_151` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_152` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_16` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_17` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_18` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_19` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_2` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_20` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_21` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_22` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_23` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_24` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_25` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_26` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_27` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_28` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_29` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_3` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_30` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_31` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_32` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_33` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_34` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_35` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_36` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_37` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_38` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_39` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_4` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_40` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_41` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_42` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_43` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_44` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_45` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_46` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_47` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_48` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_49` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_5` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_50` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_51` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_52` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_53` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_54` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_55` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_56` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_57` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_58` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_59` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_6` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_60` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_61` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_62` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_63` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_64` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_65` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_66` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_67` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_68` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_69` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_7` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_70` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_71` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_72` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_73` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_74` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_75` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_76` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_77` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_78` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_79` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_8` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_80` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_81` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_82` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_83` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_84` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_85` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_86` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_87` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_88` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_89` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_9` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`),
  ADD CONSTRAINT `commentaires_ibfk_90` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_91` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_92` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_93` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_94` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_95` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_96` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_97` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_98` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `commentaires_ibfk_99` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE ON UPDATE CASCADE;



Cordialement
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
20 mars 2013 à 16:31
Non, je veux le desc (commande SQL signifiant 'description') : tu vas sur ton client MySQL et tu tapes :
desc commentaires;


En tout cas on voit que t'avais pas compris les FK et que t'en as rajouté (inutilement) un nombre important. Certaines n'ont d'ailleurs pas de sens et sont sûrement à l'origine de ton problème. Il va aussi falloir purger tout ça.
0
Ca m'affiche les champs de la table commentaires avec le field, le type, null, key, default, extra.

Cordialement
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
20 mars 2013 à 17:10
Je sais ce qu'affiche un desc, mais que t'affiche-t-il exactement pour cette table ? J'en ai marre de faire des allers/retours pour expliquer des trucs évidents, réfléchis avant de poster.

Toute façon on connait l'erreur, tu as ajouté whatmille clés étrangères, supprime les toutes et remets juste celle qui est utile.
0
Bon c'est bon, j'ai supprimé et recréé les deux tables (articles, commentaires).
Il n'y a plus le binz.

J'ai refait cette requête SQL :
ALTER TABLE commentaires ADD FOREIGN KEY (id_article) REFERENCES articles(id_article)


Quand je regarde dans EXPORTER il y a qu'un ALTER TABLE, donc ça c'est bon !

Quand je teste :
-lors d'un ajout d'un article : ça marche, c'est OK !
-lors d'un ajout d'un commentaire : ça marche, c'est OK !
-lors de la suppression d'un article, ça me met :
Erreur sur la requête SQL concernant la suppression des articles et des commentaires correspondantsCannot delete or update a parent row: a foreign key constraint fails (`vincentsgbdd`.`commentaires`, CONSTRAINT `commentaires_ibfk_1` FOREIGN KEY (`id_article`) REFERENCES `articles` (`id_article`))


Je n'ai pas fait la requête SQL ALTER TABLE ON DELETE CASCADE. (Mais avant quand je l'ai faite, ça a débloqué pour la suppression des article mais ça a bloqué le postage des commentaires...)

Cordialement
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
20 mars 2013 à 17:49
Le problème vient justement du fait que t'as pas mis le ON DELETE CASCADE.
Tu essaies de supprimer une article qui a des commentaires associés, d'où la gueulante du moteur.

Supprime ta clé étrangère (pas besoin de supprimer tes tables avec) et recrée la avec le ON DELETE CASCADE.

PS : le ON UPDATE CASCADE est inutile.
0
Ca refait le meme bug.

J'ai fait :
ALTER TABLE commentaires DROP INDEX FOREIGN KEY


puis :
ALTER TABLE `commentaires` ADD FOREIGN KEY (`id_commentaire`) REFERENCES `articles`(`id_article`) ON DELETE CASCADE;


Voici les CREATE TABLE des deux tables :

Articles :
CREATE TABLE IF NOT EXISTS `articles` (
  `id_article` int(11) NOT NULL AUTO_INCREMENT,
  `nom_village` varchar(255) CHARACTER SET latin1 NOT NULL,
  `nom_categorie` varchar(255) CHARACTER SET latin1 NOT NULL,
  `date_depot` datetime NOT NULL,
  `titre_article` varchar(255) NOT NULL,
  `texte_article` text NOT NULL,
  `auteur_article` varchar(255) NOT NULL,
  PRIMARY KEY (`id_article`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;


Commentaires :
CREATE TABLE IF NOT EXISTS `commentaires` (
  `id_commentaire` int(11) NOT NULL AUTO_INCREMENT,
  `user_pseudo` varchar(255) NOT NULL,
  `nom_village` varchar(255) NOT NULL,
  `nom_categorie` varchar(255) NOT NULL,
  `date_depot` datetime NOT NULL,
  `texte_commentaire` text NOT NULL,
  `id_article` int(11) NOT NULL,
  PRIMARY KEY (`id_commentaire`),
  KEY `FOREIGN KEY` (`id_article`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

--
-- Contraintes pour les tables exportées
--

--
-- Contraintes pour la table `commentaires`
--
ALTER TABLE `commentaires`
  ADD CONSTRAINT `commentaires_ibfk_1` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE;


Cordialement
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
20 mars 2013 à 18:29
Je te cite, y'a deux messages :
ALTER TABLE commentaires ADD FOREIGN KEY (id_article) REFERENCES articles(id_article)

Ton dernier message :
ALTER TABLE `commentaires` ADD CONSTRAINT `commentaires_ibfk_1` FOREIGN KEY (`id_commentaire`) REFERENCES `articles` (`id_article`) ON DELETE CASCADE;

T'as pas l'impression de me prendre pour un bourricot !?
T'écris n'importe quoi sur ce 2ème ALTER TABLE !
Tu ne comprends même pas ce que toi tu écris, comment veux-tu arriver à faire une appli ?
0
Il ne faut pas faire le deuxième ALTER TABLE ?

Cordialement
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
20 mars 2013 à 18:50
Je sais plus quoi te répondre, tu comprends rien à ce que je te dis, tu ne comprends même pas ce que toi tu fais ...

On va essayer de te faire rentrer quelques idées dans le crâne, comme le font les prof en primaire, petit à petit, en te posant des questions orientées. C'est parti :

A quoi sert un ALTER TABLE ?
0
à modifier la structures des tables
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
20 mars 2013 à 19:00
D'accord, et à part l'ajout de clé/index, donne moi un exemple de son utilisation ? (pas de SQL, juste du français).
0
ajouter une colonne (add column)
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
20 mars 2013 à 19:21
Tout a fait. Du coup, si je fais plusieurs ALTER TABLE dans le cas d'un ajout de colonne (comme pour l'ajout d'une clé ou d'un index) que se passe-t-il ?
0
Rejoignez-nous