Insertion d'une valeur dans mysql
Harfana
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je ne mets pas le code car il est long, mais je vais expliquer mon problème :
Voila, je travaille sur une base de donnée avec plusieurs tables liées entre elle.
voila ma requête :
$sql = "INSERT INTO rotheorique (CodePoste, LibellePoste, GradePrincipal, GradeSecondaire,
IdSpecialitePrincipale, IdSpecialiteSecondaire, IdBrevet, PosteOccupe, IdDivision,
IdSection, IdCellule)
VALUES ('$codeposte', '$libelleposte', '$gradeprincipal', '$gradesecondaire', '$specialiteprincipale',
'$specialitesecondaire', '$brevet', 'Non', '$division', '$section', '$cellule')";
J'ai testé ma requête en directe dans phpmyadmin avec des valeurs, elle fonctionne. Si je remplace $gradesecondaire, '$specialitesecondaire', '$brevet', '$cellule' par NULL, cela fonctionne également.
Mon problème est le suivant :
Comment puis-je faire pour renvoyer, depuis ma page web, la valeur NULL ou non NULL (car elle peut contenir des données) svp?
J'ai fais plusieurs test, mais rien n'y fait et malheureusement, mes recherches sur internet sont infructueuses pour le moment. Je recherche une solution générale, car je pourrais très bien faire plusieurs requêtes en testant au préalable les valeurs et en inscrivant NULL dans la requête lorsque la variable est vide, mais cela alourdirait le code.
Je ne mets pas le code car il est long, mais je vais expliquer mon problème :
Voila, je travaille sur une base de donnée avec plusieurs tables liées entre elle.
voila ma requête :
$sql = "INSERT INTO rotheorique (CodePoste, LibellePoste, GradePrincipal, GradeSecondaire,
IdSpecialitePrincipale, IdSpecialiteSecondaire, IdBrevet, PosteOccupe, IdDivision,
IdSection, IdCellule)
VALUES ('$codeposte', '$libelleposte', '$gradeprincipal', '$gradesecondaire', '$specialiteprincipale',
'$specialitesecondaire', '$brevet', 'Non', '$division', '$section', '$cellule')";
J'ai testé ma requête en directe dans phpmyadmin avec des valeurs, elle fonctionne. Si je remplace $gradesecondaire, '$specialitesecondaire', '$brevet', '$cellule' par NULL, cela fonctionne également.
Mon problème est le suivant :
Comment puis-je faire pour renvoyer, depuis ma page web, la valeur NULL ou non NULL (car elle peut contenir des données) svp?
J'ai fais plusieurs test, mais rien n'y fait et malheureusement, mes recherches sur internet sont infructueuses pour le moment. Je recherche une solution générale, car je pourrais très bien faire plusieurs requêtes en testant au préalable les valeurs et en inscrivant NULL dans la requête lorsque la variable est vide, mais cela alourdirait le code.
A voir également:
- Insertion d'une valeur dans mysql
- Touche insertion clavier - Guide
- Insertion video powerpoint - Guide
- Insertion filigrane word - Guide
- Insertion sommaire word - Guide
- Insertion liste déroulante excel - Guide
5 réponses
Bonsoir,
on peut supposer que tu reçois la valeur depuis un formulaire non ?
alors tu récupères la valeur dans $cellule
le contenu NULL ou pas ira dans la table.
on peut supposer que tu reçois la valeur depuis un formulaire non ?
alors tu récupères la valeur dans $cellule
le contenu NULL ou pas ira dans la table.
effectivement, je récupéré les données via un formulaire. La valeur est bien récupéré dans la variable $cellule (pour la cellule) $cellule = $_POST['fListcellulemodifiee'];
toutefois, quand j'execute la requete, y a une erreur :
ligne 125 :
$sql = "INSERT INTO rotheorique (IdPoste, CodePoste, LibellePoste, GradePrincipal, GradeSecondaire,
IdSpecialitePrincipale, IdSpecialiteSecondaire, IdBrevet, PosteOccupe, IdDivision, IdSection, IdCellule)
VALUES (NULL, '$codeposte', '$libelleposte', '$gradeprincipal', '$gradesecondaire', '$specialiteprincipale',
'$specialitesecondaire', '$brevet', 'Non', '$division', '$section', '$cellule')";
ligne 126 :
$result = mysqli_query($cxn,$sql)
or die ("erreur $requete<br />" . mysqli_error($cxn) . "<br />\n");
ligne 127 :
return TRUE;
il me retourne ca :
Warning: mysqli_query() [function.mysqli-query]: Couldn't fetch mysqli in C:\wamp\www\Ressource Humaine CNASRI\Pages\Script\ScriptValidationRO.php on line 125
Warning: mysqli_error() [function.mysqli-error]: Couldn't fetch mysqli in C:\wamp\www\Ressource Humaine CNASRI\Pages\Script\ScriptValidationRO.php on line 126
erreur
toutefois, quand j'execute la requete, y a une erreur :
ligne 125 :
$sql = "INSERT INTO rotheorique (IdPoste, CodePoste, LibellePoste, GradePrincipal, GradeSecondaire,
IdSpecialitePrincipale, IdSpecialiteSecondaire, IdBrevet, PosteOccupe, IdDivision, IdSection, IdCellule)
VALUES (NULL, '$codeposte', '$libelleposte', '$gradeprincipal', '$gradesecondaire', '$specialiteprincipale',
'$specialitesecondaire', '$brevet', 'Non', '$division', '$section', '$cellule')";
ligne 126 :
$result = mysqli_query($cxn,$sql)
or die ("erreur $requete<br />" . mysqli_error($cxn) . "<br />\n");
ligne 127 :
return TRUE;
il me retourne ca :
Warning: mysqli_query() [function.mysqli-query]: Couldn't fetch mysqli in C:\wamp\www\Ressource Humaine CNASRI\Pages\Script\ScriptValidationRO.php on line 125
Warning: mysqli_error() [function.mysqli-error]: Couldn't fetch mysqli in C:\wamp\www\Ressource Humaine CNASRI\Pages\Script\ScriptValidationRO.php on line 126
erreur
petite rectification, j'avais oublié de me connecter à la base de donnée, d'ou les erreurs précédentes.
voila l'erreur qu'il me donne maintenant (apres avoir retirer DEFAUT dans la requete)
erreur
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2'', '1', '', '', 'Non', '1', '1', '')' at line 4
(la ligne 4 de la requete est : VALUES (NULL, '$codeposte', '$libelleposte', '$gradeprincipal', '$gradesecondaire', '$specialiteprincipale',)
voila l'erreur qu'il me donne maintenant (apres avoir retirer DEFAUT dans la requete)
erreur
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2'', '1', '', '', 'Non', '1', '1', '')' at line 4
(la ligne 4 de la requete est : VALUES (NULL, '$codeposte', '$libelleposte', '$gradeprincipal', '$gradesecondaire', '$specialiteprincipale',)
J'ai encore procédé à quelque modification et voila la reponse qu'il me donne maintenant :
erreur
Cannot add or update a child row: a foreign key constraint fails (`rhcnasri/rotheorique`, CONSTRAINT `rotheorique_ibfk_20` FOREIGN KEY (`IdSpecialiteSecondaire`) REFERENCES `specialite` (`IdSpecialite`))
Je dois préciser que pour les valeurs que je veux eventuellement mettre à NULL, elles sont liées à d'autre par des cles etrangère et dans ces meme tables, ces valeurs ne peuvent etre NULL.
erreur
Cannot add or update a child row: a foreign key constraint fails (`rhcnasri/rotheorique`, CONSTRAINT `rotheorique_ibfk_20` FOREIGN KEY (`IdSpecialiteSecondaire`) REFERENCES `specialite` (`IdSpecialite`))
Je dois préciser que pour les valeurs que je veux eventuellement mettre à NULL, elles sont liées à d'autre par des cles etrangère et dans ces meme tables, ces valeurs ne peuvent etre NULL.
$sql = "INSERT INTO rotheorique (IdPoste, CodePoste, LibellePoste, GradePrincipal, GradeSecondaire,
IdSpecialitePrincipale, IdSpecialiteSecondaire, IdBrevet, PosteOccupe, IdDivision, IdSection, IdCellule)
VALUES (NULL, '$codeposte', '$libelleposte', '$gradeprincipal', '$gradesecondaire', '$specialiteprincipale',
'$specialitesecondaire', '$brevet', 'Non', '$division', '$section', '$cellule')";
values('',' ".$codeposte."','".$libelleposte etc
les valeurs doivent être encadrées de '
regarde ci dessus
values( simple quote simple quote virugule double quoute point $variable point double quoute simple quote virgule simple quote etc...
IdSpecialitePrincipale, IdSpecialiteSecondaire, IdBrevet, PosteOccupe, IdDivision, IdSection, IdCellule)
VALUES (NULL, '$codeposte', '$libelleposte', '$gradeprincipal', '$gradesecondaire', '$specialiteprincipale',
'$specialitesecondaire', '$brevet', 'Non', '$division', '$section', '$cellule')";
values('',' ".$codeposte."','".$libelleposte etc
les valeurs doivent être encadrées de '
regarde ci dessus
values( simple quote simple quote virugule double quoute point $variable point double quoute simple quote virgule simple quote etc...
J'ai testé mais il me donne la même réponse :
erreur
Cannot add or update a child row: a foreign key constraint fails (`rhcnasri/rotheorique`, CONSTRAINT `rotheorique_ibfk_20` FOREIGN KEY (`IdSpecialiteSecondaire`) REFERENCES `specialite` (`IdSpecialite`))
Je me demande si le pb ne provient pas du fait que les valeurs concernées sont liées à des tables dans lesquelles elles ne peuvent pas être nulle
d'autant plus que je viens de tester mon code en ne mettant aucunes valeur vide et cela fonctionne, l'entrée est bien enregistrée dans la bdd.
erreur
Cannot add or update a child row: a foreign key constraint fails (`rhcnasri/rotheorique`, CONSTRAINT `rotheorique_ibfk_20` FOREIGN KEY (`IdSpecialiteSecondaire`) REFERENCES `specialite` (`IdSpecialite`))
Je me demande si le pb ne provient pas du fait que les valeurs concernées sont liées à des tables dans lesquelles elles ne peuvent pas être nulle
d'autant plus que je viens de tester mon code en ne mettant aucunes valeur vide et cela fonctionne, l'entrée est bien enregistrée dans la bdd.
Bonjour,
le message te parle de clés étrangères, et ton message est tout à fait vrai. le lien vers d'autres tables via ces champs
-- en ce qui concerne les liens vers les autres tables.
le message te parle de clés étrangères, et ton message est tout à fait vrai. le lien vers d'autres tables via ces champs
-- en ce qui concerne les liens vers les autres tables.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question