Insertion d'une valeur dans mysql

Fermé
Harfana - 28 mars 2008 à 19:02
 Utilisateur anonyme - 31 mars 2008 à 08:59
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.
A voir également:

5 réponses

Utilisateur anonyme
28 mars 2008 à 19:45
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.
0
Harfana Messages postés 6 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 25 août 2008
28 mars 2008 à 20:05
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
0
Harfana Messages postés 6 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 25 août 2008
28 mars 2008 à 20:15
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',)
0
Harfana Messages postés 6 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 25 août 2008 > Harfana Messages postés 6 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 25 août 2008
28 mars 2008 à 20:31
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.
0
Utilisateur anonyme
28 mars 2008 à 22:04
$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...
0
Harfana Messages postés 6 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 25 août 2008
28 mars 2008 à 22:28
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.
0
Utilisateur anonyme
29 mars 2008 à 17:21
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.
0
Harfana Messages postés 6 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 25 août 2008
30 mars 2008 à 13:16
Comment faire alors ??

Dois-je prévoir dans ma table de référence, une valeur vide ou y a t il des commandes à insérer dans la requête INSERT ?
0

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

Posez votre question
Utilisateur anonyme
31 mars 2008 à 08:59
Bonjour,

autorises les valeurs nulle, regrades si dans une table liées il n'y a aps un champs déclaré comme obligatoirement NOT NULL
0