SQL Soucis clé étrangère
Fermé
TRUNCKS
Messages postés
1017
Date d'inscription
vendredi 10 août 2007
Statut
Membre
Dernière intervention
8 novembre 2024
-
Modifié par TRUNCKS le 31/10/2011 à 09:49
TRUNCKS Messages postés 1017 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 8 novembre 2024 - 31 oct. 2011 à 17:18
TRUNCKS Messages postés 1017 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 8 novembre 2024 - 31 oct. 2011 à 17:18
A voir également:
- SQL Soucis clé étrangère
- Clé windows 10 gratuit - Guide
- Clé usb non détectée - Guide
- Clé bootable windows 10 - Guide
- Clé usb 2to vrai ou faux - Accueil - Stockage
- Cle hdmi tv - Guide
11 réponses
bissdebrazza
Messages postés
2065
Date d'inscription
vendredi 29 juin 2007
Statut
Contributeur
Dernière intervention
7 décembre 2017
712
31 oct. 2011 à 11:49
31 oct. 2011 à 11:49
Bonjour!
Catégorie ( ID_catégorie (primaire), nom_categorie ) Produits ( ID_produit (primaire), nom produit, ID_categorie(clé étrangère) )
TRUNCKS
Messages postés
1017
Date d'inscription
vendredi 10 août 2007
Statut
Membre
Dernière intervention
8 novembre 2024
7
Modifié par TRUNCKS le 31/10/2011 à 13:33
Modifié par TRUNCKS le 31/10/2011 à 13:33
Merci, je viens de corriger mes tables mais j'ai toujours le problème:
En gros, je récupère une liste déroulante comme ceci:
Et je récupère comme ça:
Ensuite, j'enregistre l'id dans la base.
En gros, je récupère une liste déroulante comme ceci:
p><select name="nom_categorie"> <?php while ($result = mysql_fetch_array($requete)) { echo '<option value="'.$result['dossier'].'">'.$result['nom_categorie'].'</option>'; }?></select></p>
Et je récupère comme ça:
$nom_categorie = mysql_real_escape_string($_POST['nom_categorie']); $requete_cat = "SELECT ID_categorie FROM categories WHERE ID_categorie = '$nom_categorie'"; //exécution de la requête: $categorie = mysql_query($requete_cat) or die( mysql_error());
Ensuite, j'enregistre l'id dans la base.
bissdebrazza
Messages postés
2065
Date d'inscription
vendredi 29 juin 2007
Statut
Contributeur
Dernière intervention
7 décembre 2017
712
31 oct. 2011 à 14:40
31 oct. 2011 à 14:40
Salut!
voila ce que tu vas faire,tu vas dans phpmyadmin sur la table produit, tu supprime l'index qui est crée automatiquement avec la table catégorie. et tu recrée manuelement.ça devrait passer normalement. j'ai eu ce même souci lorsque je copier directement mes scripts sql généré avec powerAmc.
voila ce que tu vas faire,tu vas dans phpmyadmin sur la table produit, tu supprime l'index qui est crée automatiquement avec la table catégorie. et tu recrée manuelement.ça devrait passer normalement. j'ai eu ce même souci lorsque je copier directement mes scripts sql généré avec powerAmc.
TRUNCKS
Messages postés
1017
Date d'inscription
vendredi 10 août 2007
Statut
Membre
Dernière intervention
8 novembre 2024
7
31 oct. 2011 à 15:55
31 oct. 2011 à 15:55
C'est bon, je suis arrivé a supprimer.
Comment fait on pour créer la clé étrangère avec une requête ?
Désolé je ne sais pas comment on fait :(
Comment fait on pour créer la clé étrangère avec une requête ?
Désolé je ne sais pas comment on fait :(
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bissdebrazza
Messages postés
2065
Date d'inscription
vendredi 29 juin 2007
Statut
Contributeur
Dernière intervention
7 décembre 2017
712
31 oct. 2011 à 16:39
31 oct. 2011 à 16:39
ok,tu te met sur la table produit (la structure), en bas tu veras un tableau "index", tu crée un nouvel index tout en choisissant la colonne concernée. une fois fait,juste en dessous du tableau de la structure de la table produit tu verras "Gestions des relations" tu clique la bas. et dans la page qui apparait, tu verras que tu peux selectionner l'ID de la catégorie. tu déroule le menu et tu choisi un truc de ce genre catégorie--->ID_categorie et tu prend la suppression en cascade et modification aussi.tu valide le tout et tout devrait aller mieux!
TRUNCKS
Messages postés
1017
Date d'inscription
vendredi 10 août 2007
Statut
Membre
Dernière intervention
8 novembre 2024
7
31 oct. 2011 à 16:47
31 oct. 2011 à 16:47
Rhaa mais c'est pas vrai, j'ai toujours ce p... de message.
erreur sq: Cannot add or update a child row: a foreign key constraint fails ('images'.'images', CONSTRAINT 'images_ibfk_2' FOREIGN KEY ('ID_image') REFERENCES 'images' ('categorie_id') ON DELETE CASCADE ON UPDATE CASCADE)
Bon sang j'suis nul ou quoi, ça doit pas être la folie de lier deux tables quoi lol
erreur sq: Cannot add or update a child row: a foreign key constraint fails ('images'.'images', CONSTRAINT 'images_ibfk_2' FOREIGN KEY ('ID_image') REFERENCES 'images' ('categorie_id') ON DELETE CASCADE ON UPDATE CASCADE)
Bon sang j'suis nul ou quoi, ça doit pas être la folie de lier deux tables quoi lol
TRUNCKS
Messages postés
1017
Date d'inscription
vendredi 10 août 2007
Statut
Membre
Dernière intervention
8 novembre 2024
7
31 oct. 2011 à 16:54
31 oct. 2011 à 16:54
Quand je fais un echo de $categorie pour voir, il me sort:
id #6
Alors que l'id est censé être 1 :(
id #6
Alors que l'id est censé être 1 :(
bissdebrazza
Messages postés
2065
Date d'inscription
vendredi 29 juin 2007
Statut
Contributeur
Dernière intervention
7 décembre 2017
712
31 oct. 2011 à 16:55
31 oct. 2011 à 16:55
tes deux tables ont des enregistrements? car si ta table produit est vide, tu ne peux pas supprimer une catégorie car dans sa suppression il ne trouveras pas l'ID correspondant dans l'autre table.
TRUNCKS
Messages postés
1017
Date d'inscription
vendredi 10 août 2007
Statut
Membre
Dernière intervention
8 novembre 2024
7
31 oct. 2011 à 17:07
31 oct. 2011 à 17:07
J'arrive deja à insérer un enregistrement a partir de phpmyadmin.
J'ai bien la liste déroulante avec les catégories dans la clé étrangère, déja ça.
Je pense que le dernier soucis, c'est qu'il ne me renvoie pas la bonne ID non ?
Il me renvoie un 6 alors que je n'ai que 1, 12 et 13 en ID_catégorie.
J'ai bien la liste déroulante avec les catégories dans la clé étrangère, déja ça.
Je pense que le dernier soucis, c'est qu'il ne me renvoie pas la bonne ID non ?
Il me renvoie un 6 alors que je n'ai que 1, 12 et 13 en ID_catégorie.
bissdebrazza
Messages postés
2065
Date d'inscription
vendredi 29 juin 2007
Statut
Contributeur
Dernière intervention
7 décembre 2017
712
31 oct. 2011 à 17:08
31 oct. 2011 à 17:08
regarde bien tes enregistrements
TRUNCKS
Messages postés
1017
Date d'inscription
vendredi 10 août 2007
Statut
Membre
Dernière intervention
8 novembre 2024
7
Modifié par TRUNCKS le 31/10/2011 à 17:18
Modifié par TRUNCKS le 31/10/2011 à 17:18
Tu crois que ma requête est fausse ?
Je cécupère le nom_catégorie à partir d'une liste déroulante, je demande l'ID est j'enresgistre.
J'ai manqué quelque chose ?
Je cécupère le nom_catégorie à partir d'une liste déroulante, je demande l'ID est j'enresgistre.
J'ai manqué quelque chose ?
$nom_categorie = mysql_real_escape_string($_POST['nom_categorie']); $requete_cat = "SELECT ID_categorie FROM categories WHERE nom_categorie = '$nom_categorie'"; //exécution de la requête: $categorie = mysql_query($requete_cat) or die( mysql_error());
$sq = "INSERT INTO images VALUES('','$titre_image','$titre_image2','$texte_image','$texte_image2','$nFile','$categorie')"; $quer = mysql_query($sq) or die('erreur sq: '.mysql_error());