|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : novembre 2010 Messages : 109 ![]() |
Bonjour à vous,
J'ai lu quelques tutos concernant les clé étrangères ( je suis sous phpmyadmin ) mais je n'arrive toujours pas à mettre en place un truc tout bête, je pense que j'ai une erreur de structure. J'ai tout simplement deux tables: une table catégorie et une table produit. Je peux que les produits soient affectés à une catégorie. Que si la catégorie disparaît, tous les produits virent mais que si l'on supprime tous les produits, la catégorie reste. J'ai fait cela: Catégorie ( ID_catégorie (primaire), nom_categorie ) Produits ( ID_produit (primaire), nom produit, produit_id (étrangère) ) Ce n'est pas comme ça qu'il faut faire ? Je me retrouve avec cela quand j'essaye d'enregistrer une clé étrangère dans la bdd: erreur sq: Cannot add or update a child row: a foreign key constraint fails ('produits'.'produits', CONSTRAINT 'produits_ibfk_1' FOREIGN KEY ('categorie_id') REFERENCES 'categories' ('ID_categorie') ON DELETE CASCADE ON UPDATE CASCADE) |
|
|
00
|
|
|
#2 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 991 ![]() |
Tu mets une clé étrangère en boucle ?
Il faut mettre une clé étrangère sur la catégorie dans produits et non un clé étrangère de produit sur produit: Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
00
|
|
|
#3 | ||||
|
Invité régulier
![]() Inscription : novembre 2010 Messages : 109 ![]() |
Merci pour la réponse,
Je viens de corriger mes tables mais j'ai toujours l'erreur. Je ne comprend pas très bien le message, j'ai une boucle c'est a dire ? Tu penses que c'est en rapport avec cette ligne: Code :
Code :
|
||||
|
|
00
|
|
|
#4 | |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 991 ![]() |
Citation:
Par exemple, il est impossible de créer un produit ayant un category_id inexistant. De même il est impossible de supprimer une catégorie qui est référencée par un produit (à moins d'avoir mis le flag ON DELETE CASCADE ce qui détruit les références filles). Donc 1. Crée les catégories 2. Crée les produits en mettant des id de catégories existants Au passage, donne voir les structure des tes tables (tu peux les obtenir en executant la requête SQL "SHOW CREATE TABLE `table`" où table est le nom d'une table).
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : novembre 2010 Messages : 109 ![]() |
Voici:
ID_categorie int(11) Non nom_categorie varchar(100) Non dossier varchar(100) Non Index: Nom de l'index Type Unique Compressé Colonne Cardinalité Interclassement Null Commentaire PRIMARY BTREE Oui Non ID_categorie 3 A images Colonne Type Null Défaut ID_image int(11) Non titre_image varchar(200) Non titre_image_en varchar(200) Non texte_image longtext Non texte_image_en longtext Non url_image varchar(200) Non categorie_id int(11) Non Relié à: categories -> ID_categorie Index: Nom de l'index Type Unique Compressé Colonne Cardinalité Interclassement Null Commentaire PRIMARY BTREE Oui Non ID_image 0 A categorie_id BTREE Non Non categorie_id 0 A utilisateurs |
|
|
00
|
|
|
#6 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 991 ![]() |
Ton select devrait permettre de sélectionner un ID_categorie plutôt qu'un dossier.
Et ta requête de sélection est fausse: Code :
SELECT ID_categorie FROM categories WHERE ID_categorie = '$nom_categorie'
Code :
SELECT ID_categorie FROM categories WHERE nom_categorie = '$nom_categorie'
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : novembre 2010 Messages : 109 ![]() |
En fait le dossier est une juste un champ de ma base, pour pouvoir uplodé des images dedans.
Je n'y arrive vraiment pas, je dois juste récupèrer l'id et la mettre dans le champ correspondant De toute façon, la contrainte entre les tables n'est pas bonne non ? |
|
|
00
|
|
|
#8 | ||
|
Invité régulier
![]() Inscription : novembre 2010 Messages : 109 ![]() |
Re-bonjour,
Je viens de revérifier toutes mes tables, j'arrive bien à insérer des enregistrement à partir de phpmyadmin, j'ai bien la liste déroulante sur ma clé étrangère donc je pense que mes tables sont bien liés. Je pense vraiment que cela vient de mon traitement, en faisant un echo de $categorie, il me sort un #6 alors que n'ai pas cet ID dans ma table catégorie. Code :
|
||
|
|
00
|
|
|
#9 | |||
![]() ![]() Andry Aimé Inscription : septembre 2007 Messages : 5 133 ![]() |
Bonsoir,
Citation:
Code :
|
|||
|
|
00
|
|
|
#10 |
|
Invité régulier
![]() Inscription : novembre 2010 Messages : 109 ![]() |
Merci pour cette erreur, mais même chose malheureusement
|
|
|
00
|
|
|
#11 | |
![]() ![]() Andry Aimé Inscription : septembre 2007 Messages : 5 133 ![]() |
Citation:
Code :
$sq = "INSERT INTO images VALUES('','$titre_image','$titre_image2','$texte_image','$texte_image2','$nFile','$categorie[0]')"; A+. |
|
|
|
00
|
|
|
#12 | ||
|
Invité régulier
![]() Inscription : novembre 2010 Messages : 109 ![]() |
J'ai fait comme ceci:
Code :
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\upload\addimage.php on line 48 |
||
|
|
00
|
|
|
#13 | ||
![]() ![]() Andry Aimé Inscription : septembre 2007 Messages : 5 133 ![]() |
Code :
|
||
|
|
00
|
|
|
#14 |
|
Invité régulier
![]() Inscription : novembre 2010 Messages : 109 ![]() |
Notice: Undefined variable: categorie in C:\wamp\www\upload\addimage.php on line 45
Warning: mysql_num_rows() expects parameter 1 to be resource, null given in C:\wamp\www\upload\addimage.php on line 45 J'ai bien l'impression qu'il ne passe rien non ? |
|
|
00
|
|
|
#15 |
![]() ![]() Andry Aimé Inscription : septembre 2007 Messages : 5 133 ![]() |
Mauvais copier/coller
![]() |
|
|
00
|
|
|
#16 |
|
Invité régulier
![]() Inscription : novembre 2010 Messages : 109 ![]() |
Merci,
Pas d'erreurs cette fois ça, mais rien ne s'inscrit dans la base. |
|
|
00
|
|
|
#17 | ||
![]() ![]() Andry Aimé Inscription : septembre 2007 Messages : 5 133 ![]() |
La requête select retourne un résultat?
Essaie de faire Code :
|
||
|
|
00
|
|
|
#18 |
|
Invité régulier
![]() Inscription : novembre 2010 Messages : 109 ![]() |
Bizarre, aucun message
|
|
|
00
|
|
|
#19 | ||
![]() ![]() Andry Aimé Inscription : septembre 2007 Messages : 5 133 ![]() |
C'est que cette requête ne retourne aucun résultat:
Code :
A+. |
||
|
|
00
|
|
|
#20 |
|
Invité régulier
![]() Inscription : novembre 2010 Messages : 109 ![]() |
Il me renvoie ceci:
SELECT ID_categorie FROM categories WHERE nom_categorie = '/images/test/' C'est ça pour le moment, je ne comprend pas pourquoi il ne me récupère pas l'ID qui va avec. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com