tu voudrais pas faire un export de la structure de ta base en SQL
car la,le message d'erreur signifie qu'une valeur de clé étrangère pose soucis dans la table de référence.
Version imprimable
tu voudrais pas faire un export de la structure de ta base en SQL
car la,le message d'erreur signifie qu'une valeur de clé étrangère pose soucis dans la table de référence.
la création de mes clé étrangère suffirai ? ou il te faut tout?
voici le code de création de mes clés étrangères:
https://mega.co.nz/#!QppyHR5L!Dd4uKw...BnBU4DAS6VxHBc
(ps: croyez moi si ça ne tenais qu'a moi je retirais cette codification qui pose problème et ça ne serai qu'un simple champ qui serais remplis via une liste avec des choix que je défini sans avoir besoin d'aller chercher des civilité dans une table de la bdd ce qui semble moins contraignant )
Bonjour,
j'viens de jeter un œil, mais là, t'as mis juste la création des clés étrangères , c'est vrais de toutes tes tables ...
je crois que juste la structure de ta table personne et celle de codification ( du moins je crois ..) aiderais a comprendre.
Voir des trucs genre si tes table sont de type InnoDB, si la structures des champs est identique ...
pour la table:
https://mega.co.nz/#!ohoXWJQJ!cf08KR...4TB-2KGJhWAyCI
et pour les clé primaire comme ça tu as tout:
https://mega.co.nz/#!J8JjRRYQ!bFR28X...in_7ONvmO7GNi8
Ho les gars, on arrête de tourner en rond et on règle un problème à la fois.
Bon alors pour commencer on utilise plus le drivers MySQL qui n'eszt plus maintenu depuis 2004 (ça fait loin je sais), on lui préféreras MySQLi (remarquez le 'i').
Même si j'aurais une préférence pour PDO (mieux et plus Bo, ben oui autant apprendre correctement).
Bon alors tout ce joue ici :
Code:
1
2
3
4
5 $code_etab="SELECT CODE FROM CODIFICATION WHERE LIBELLE='".$etablissement."'"; $code_civ="SELECT CODE FROM CODIFICATION WHERE LIBELLE='".$civilite."'"; $code_statut="SELECT CODE FROM CODIFICATION WHERE LIBELLE='enploye'"; $code_groupe="SELECT CODE FROM CODIFICATION WHERE LIBELLE='".$groupe."'";
Dans un post tu signales que cela renvoi les requêtes au lieu des résultats, je te cite :
Donc tes requêtes ne sont pas exécuter, ensuite il me semble que tu t'en rend compte.Citation:
Envoyé par kevdanone
Ton souci est ici, le #id est une resosurce MySQL, qui te dit je t'ai retourné quelques chose, mais tu ne m'as pas traité, il manque un while dans tes requêtes.Citation:
Envoyé par kevdanone
Donc commence doucement :
Reprend la requête suivante :
et traite là jusqu'a tu obtiens ton résulat, ensuite tu pourras mettre ton résultats dans ta grosse requête.Code:
1
2 $code_etab="SELECT CODE FROM CODIFICATION WHERE LIBELLE='".$etablissement."'";
En espérant avoir été clair.
MaitrePylos
donc je dois repartir sur la piste du mysql_query ? mais je ne pige pas pour le while ? pourquoi dois je faire une boucle pour récupérer mon résultat?
Et comment lis tu ton résultat d'habitude ?
au risque de me faire taper sur les doigt j'ai fais ça:
Code:
1
2
3
4
5
6 $req1=mysql_query("SELECT CODE FROM CODIFICATION WHERE LIBELLE='".$etablissement."'"); $code_etab=mysql_fetch_array($req1); $req2=mysql_query("SELECT CODE FROM CODIFICATION WHERE LIBELLE='employe'"); $code_statut=mysql_fetch_array($req2); $req3=mysql_query("SELECT NATURE FROM CODIFICATION WHERE CODE='".$code_groupe."'"); $groupe=mysql_fetch_array($req3);
après avoir réfléchie un peu sur ce qu'il y avait en amont dans mon code qui affiche la liste je me suis rendu compte de l'erreur que j'avais faite sur le value des liste déroulante pour je ne sais quelle raison j'avais mis en value la même chose que j'affichais au lieu du CODE qui se rapportait a ce qui était afficher (et qui était mon LIBELLE)
merci MaitrePylos pour la prise de conscience ^^
meci je corrige. Donc ce que j'ai mis juste avant que tu corrige n'est pas correct mais fonctionne :s
Ha oui et c'est quoi l'erreur ?
Citation:
Fatal error: Call to undefined function var_dum() in C:\Program Files\wamp2\www\intranet_onefit\ajout_personne.php on line 38
dsl faute de ma part j'ai oublier le "p"
Grillé :)
tu ne trouves pas qu'il y a une inadéquation entre ce que l'erreur te dit et ce que tu dois écrire.
Lis bien, tu vas trouver :)Code:
1
2 var_dump($row);
oui oui j'ai vue mon erreur :mrgreen: mais malgré tout ça me retourne de nouveau un id#.. et une erreur avec ^^ (surement une autre erreur de ma part on verra :aie:)
voici l'affichage que ca me donne
Citation:
array (size=1)
'CODE' => string '1' (length=1)
INSERT INTO PERSONNE (num_Personne,num_etablissement,nature_civilite_personne, ...blabla...) VALUES('','Resource id #4','civilite','4','stagiaire',..blablabla...'')ErreurCannot add or update a child row: a foreign key constraint fails (`onefit`.`personne`, CONSTRAINT `personne_ibfk_1` FOREIGN KEY (`NUM_ETABLISSEMENT`) REFERENCES `etablissement` (`NUM_ETABLISSEMENT`)) : Cannot add or update a child row: a foreign key constraint fails (`onefit`.`personne`, CONSTRAINT `personne_ibfk_1` FOREIGN KEY (`NUM_ETABLISSEMENT`) REFERENCES `etablissement` (`NUM_ETABLISSEMENT`))
Mais bon sang tu veux bien ouvrir tes oreilles.
Ceci est le résultat d'un requête, leCode:
1
2'Resource id #4
te dit ce qu'il y a dans cette requête mais en aucun cas ne modifie ce résultat.Code:var_dump($row);
donc si tu passe comme variable le résultat de ta requête cela n'ira jamais.
Je te conseilles la lecture suivante http://g-rossolini.developpez.com/tu...e=donnees#LVII histoire qu'on avance un peu.
au risque de paraître vraiment borné mon problème actuelle n'était pas d'afficher les résultat l'affichage étant une solution que l'on ma proposer pour trouver mes erreurs mais de récupérer les bonne info de mon formulaire et de les ajouter a ma bdd via une requête sql dans du php. Ce qui avec la bidoulle que j'ai fais avant et que tu m'a dit incorrect fonctionne et l'ajout s'effectue correctement .
Cependant je restais ouvert a une éventuelle méthode plus simple ou plus propre pour arriver a cette finalité.:ccool: dsl si je commence a t’énerver ou t'agacer :?