Insertion de la variable NULL après formulaire

Insertion de la variable NULL après formulaire - PHP - Programmation

Marsh Posté le 25-07-2006 à 13:16:23    

Bonjour, j'utilise un formulaire d'inscription qui alimente une base de donnée, ce formulaire contient entre autres des champs ou l'utilisateur doit taper un entier, qui est facultatif. J'aimerais donc que lorsque l'utilisateur laisse ce champ vide, le champ correspondant dans la base de donnée soit NULL et non 0.
 
Voilà des extraits du code:
 
if(isset($_POST['NiveauEtudeMin'])) $NiveauEtudeMin=$_POST['NiveauEtudeMin']; else $NiveauEtudeMin="";
...
if ($NiveauEtudeMin=="" ) $NiveauEtudeMin=NULL;
...
mysql_query("UPDATE tiers SET ... NiveauEtudeMin='".$NiveauEtudeMin."', NiveauEtudeMax='".$NiveauEtudeMax."' ... WHERE NumTiers='".$NumTiers."'" ) or die('Erreur SQL !<br>'.mysql_error());
 
cette requête ci fonctionne, mais me met des 0 pour les entiers et des 0000-00-00 pour les dates non remplies.
 
Si j'enlêve les simples quotes de ma requête:
mysql_query("UPDATE tiers SET ... NiveauEtudeMin=".$NiveauEtudeMin.", NiveauEtudeMax=".$NiveauEtudeMax." ... WHERE NumTiers='".$NumTiers."'" ) or die('Erreur SQL !<br>'.mysql_error());
 
Le script me retourne une erreur.
 
Evidemment j'ai configuré ma table dans phpmyadmin pour que les champs en question puissent recevoir la valeur NULL.
 
Merci d'avance.

Reply

Marsh Posté le 25-07-2006 à 13:16:23   

Reply

Marsh Posté le 25-07-2006 à 13:27:08    

2 choses
 
soit tu affecte la chaine NULL à ta variable et ça pourrait bien marcher
 
soit tu défini comme valeur par défaut NULL à ton champ
 
là tu ne fais qu'envoyer une variable vide donc forcément il prend la valeur par défaut qui est 0 ;)


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 25-07-2006 à 13:36:55    

Sh@rdar a écrit :

2 choses
 
soit tu affecte la chaine NULL à ta variable et ça pourrait bien marcher
 
soit tu défini comme valeur par défaut NULL à ton champ
 
là tu ne fais qu'envoyer une variable vide donc forcément il prend la valeur par défaut qui est 0 ;)


 
1) Si j'affecte la chaine de cette facon:
if ($NiveauEtudeMin=="" ) $NiveauEtudeMin="NULL";
il continue à me mettre 0 et non NULL dans la base de donnée
 
2) c'est en fait un script de modification de profil, donc je suis obligé de definir la valeur de mon champ avec le contenu de la base de donnée, qui ici se retrouve être un 0 ou un 0000-00-00

Reply

Marsh Posté le 25-07-2006 à 13:41:23    

regarde comment insérer NULL dans une base mysql :)


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 25-07-2006 à 13:49:05    

Hum je sais bien qu'il me faudrait une requête comme ca :
UPDATE tiers set Valeur=NULL WHERE ...
mais j'ai un soucis avec les guillemets j'ai l'impression, vu que ca me retourne une erreur quand je n'en mets pas.

Reply

Marsh Posté le 25-07-2006 à 13:50:40    

ma boule de cristal est en panne :/


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed