GROS GROS GROS GROS PB MYSQL

Résolu/Fermé
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 - 28 juil. 2009 à 15:56
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 - 28 juil. 2009 à 16:37
Bonjour,

Désolé pour les majuscule mais je crois que je vais explosé ce p**** d'ordi de m**** a la c** !

Bref voila mon problème : j'ai deux tables, adherents et sites. Voila le code :

Adherents :
CREATE TABLE IF NOT EXISTS `adherents` (
  `id` int(5) NOT NULL auto_increment,
  `mail` varchar(30) NOT NULL,
  `pseudo` varchar(20) NOT NULL,
  `pass` varchar(40) NOT NULL default '137d6caf429ce73a44ad08b6fedf17ec',
  `droits` varchar(10) NOT NULL default 'Adhérent',
  `statut` varchar(30) NOT NULL,
  `bloque` int(1) NOT NULL default '0',
  `age` int(2) NOT NULL,
  `sexe` char(1) NOT NULL,
  `pays` varchar(20) NOT NULL,
  `villecp` varchar(50) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


--
-- Contraintes pour la table `adherents`
--
ALTER TABLE `adherents`
  ADD CONSTRAINT `adherents_ibfk_1` FOREIGN KEY (`id`) REFERENCES `sites` (`id_auteur`) ON DELETE CASCADE ON UPDATE CASCADE;



Et ma table sites :
CREATE TABLE IF NOT EXISTS `sites` (
  `id` int(5) NOT NULL auto_increment,
  `url` varchar(50) NOT NULL,
  `texte` text NOT NULL,
  `description` text NOT NULL,
  `id_auteur` int(5) NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `id_auteur` (`id_auteur`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


Je précise que LES 2 TABLES SONT VIDES !!!!!!!!!!!!!!!!!!!!!!

Mon problème : je ne PEUT PAS ajouter d'enregistrements dans adherents.

Et pour en ajouter dans sites, il faut l'id de l'adhérent, puisque les deux sont reliés...

DONC SI POSSIBLE MERCI DE M'AIDER AVANT QUE JE FASSE UN MEURTRE !!!!

8 réponses

hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51
28 juil. 2009 à 15:57
Ps : le message d'erreur MySQL est :
#1452 - Cannot add or update a child row: a foreign key constraint fails (`libcom_b1/adherents`, CONSTRAINT `adherents_ibfk_1` FOREIGN KEY (`id`) REFERENCES `sites` (`id_auteur`) ON DELETE CASCADE ON UPDATE CASCADE)
0
Blocks Messages postés 98 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 31 janvier 2011 3
28 juil. 2009 à 16:03
Aucune erreur pour ma base de données...
0
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51
28 juil. 2009 à 16:06
Mais alors quoiiiiiiiiiiiiiiiiiiiiiiiiiii ??????????????????,

AAAAAAAAAAAAAAAAA je vais devenir fou !!!!!!!!!!!!!!!!!!!!!!!!! (si ce n'est pas déjà le cas)
0
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
28 juil. 2009 à 16:10
"Et pour en ajouter dans sites, il faut l'id de l'adhérent, puisque les deux sont reliés... "

heu où ca ?
là moi je vois que pour ajouter dans adhérent, il faut que ca soit dans site, pas l'inverse
0
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51
28 juil. 2009 à 16:21
AAAAAAAAA donc j'ai fait la liaison à l'envers ? Et pourtant, tout a l'heure je l'avais fait dans l'autre sens, et ça me mettait quand j'ajoutais un enregistrement dans site "Cannot add or update a child row: a foreign key constraint fails (`libcom_b1/sites`, CONSTRAINT `sites_ibfk_1` FOREIGN KEY (`id_auteur`) REFERENCES `adherents` (`id`) ON DELETE CASCADE ON UPDATE CASCADE)" !!!
0

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

Posez votre question
Heryu Messages postés 567 Date d'inscription mercredi 15 juillet 2009 Statut Membre Dernière intervention 28 juin 2016 62
28 juil. 2009 à 16:10
C'est le cas oui !
0
hatonis Messages postés 34 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 21 janvier 2010
28 juil. 2009 à 16:20
Salut.

En fait, j'ai l'impression que tes deux tables sont dépendantes l'une par rapport à l'autre. Je veux dire par là, que pour créer un adhérent, tas besoin d'un site et pour créer un site, tas besoin d'un adhérent. Du coup, tu ne pourras rien rajouter, je pense. enfin bon, c'est ce que j'ai cru comprendre...

Essaie de supprimer l'une des deux dépendances peut etre...

De plus, tu as fait une contraine de clé étrangère sur adhérent qui suppose que son id doit etre présente dans 'sites'. Donc un adhérent a forcément un site...?


Tiens nous au jus.
0
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51
28 juil. 2009 à 16:24
Et bien en faite, un adhérent n'a pas forcément un site, mais dans site, pour savoir qui est l'auteur, je met "id_adherent", comme ça avec une requette, on sait qui a posté tel site..
.
0
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
28 juil. 2009 à 16:26
"un adhérent n'a pas forcément un site"

ben alors c'est à l'envers ta contrainte ^^
0
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51
28 juil. 2009 à 16:37
Bon j'ai enfin trouvé je vous explique (et merci à tous).

J'avais vidé mes tables, et fait la relation de sites ==> adhérents, seulement mon script php mettait "0" dans id_auteur (donc message d'erreur puisque dans ma table adhérent, les id commence a 1).

Du coup, j'ai fais la relation de adhérent ==> sites (1ére erreur), puis j'ai fais une seconde relation sites ==> adherents (donc double dépendance, deuxième erreur), puis j'ai vidé toutes mes tables (donc impossibilité d'ajout dans les deux tables, 3éme erreur).

Voilà 3 bonnes grosses erreurs qui m'ont fais perde un temps fou.

Pour y remédié, j'ai mi dans mon script php "1" à la place de "0", et dans ma table adhérent, j'ai réservé l'id "1" à l'adhérent par défaut. Bref tout est bien qui finit bien, sauf pour les 3000 personnes que j'ai tués (mais ça on s'en fou :p)
0