Valeur d'un champs vide du formulaire

Résolu
optimed
Messages postés
18
Date d'inscription
lundi 17 mai 2004
Statut
Membre
Dernière intervention
4 novembre 2005
- 6 juil. 2004 à 15:35
optimed
Messages postés
18
Date d'inscription
lundi 17 mai 2004
Statut
Membre
Dernière intervention
4 novembre 2005
- 13 juil. 2004 à 21:11
Bonjour!

Voila mon problème: dans un formulaire, j'ai deux champs de texte qui me servent à récupérer un horaire ( le premier permet de saisir l'heure et l'autre les minutes ). Je récupère ces 2 valeurs pour avoir l'horaire saisi. Le problème c'est que si ces 2 champs ne sont pas renseignés, le champs horaire dans ma bdd se retrouve à 00:00:00 alors que je voudrais qu'il soir à "Null".

Quelqu'un pourrait il me donner une méthode pour résoudre ce problème?

Merci d'avance.

9 réponses

cs_GRenard
Messages postés
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008

13 juil. 2004 à 07:45
Voila le problème, tu ne dois pas entourer les variables qui peuvent avoir un champs NULL par des délimiteur " ou ' ou `....

Donc seulement mettre $horairefin. Et pour remédier au problème de mettre ces délimiteurs lorsque c'est pas NULL, tu peux faire ceci :
if ($horairefin==":")
$horairefin =NULL;
else
$horairefin = "'".$horairefin."'";
3
cs_GRenard
Messages postés
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008

6 juil. 2004 à 16:01
SI tu peux mettre ton champs datetime à NULL, bah il faut qu'il y ait l'option dans la db (pas setté à NOT NULL, mais à NULL)

Donc dans ton code, à toi de vérifier si !isset ou si ==-1 (exemple), bah alors tu écris NULL
0
optimed
Messages postés
18
Date d'inscription
lundi 17 mai 2004
Statut
Membre
Dernière intervention
4 novembre 2005

12 juil. 2004 à 04:55
L'option dans la db est bien mise à NULL mais je n'arrive pas à donner la valeur NULL au champs correspondant, je me retrouve systematiquement avec "00:00:00".

Voila le bout de code concerné:
$heure=$HTTP_POST_VARS['heure'];
$minute= $HTTP_POST_VARS['minute'];
$horaire= $heure.":".$minute; 
if ($horairefin==":") {$horairefin =NULL;}



Si quelqu'un pouvait m'aider ca serait cool car j'ai beau chercher un peu partout, pas moyen de comprendre l'erreur... :-/
0
optimed
Messages postés
18
Date d'inscription
lundi 17 mai 2004
Statut
Membre
Dernière intervention
4 novembre 2005

12 juil. 2004 à 04:57
oups, remplacer $horairefin à la dernière ligne par $horaire tout court...
0

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

Posez votre question
cs_GRenard
Messages postés
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008

12 juil. 2004 à 05:07
copie ton INSERT (ou update) pour voir
0
optimed
Messages postés
18
Date d'inscription
lundi 17 mai 2004
Statut
Membre
Dernière intervention
4 novembre 2005

13 juil. 2004 à 03:28
En fait , j'insère en une fois toutes les valeurs du formulaire dans la bdd

Ca donne:

$resultat = mysql_query ("INSERT INTO evenement (titre, soustitre, festival, datereelle, datedebut, datefin, heure, heurefin, lieu, site, description, prix, prixspecial, lien, cible, miseenpage, image, theme1, theme2, theme3)
VALUES ("$titre","$soustitre","$titrefestival","$datereelle","$datedebut","$datefin", "$horaire", "$horairefin", "$lieu", "$site", "$description","$prix","$prixspecial","$lien","$cible","$miseenpage","$image", "$themes1", "$themes2", "$themes3")",$dbi);

0
optimed
Messages postés
18
Date d'inscription
lundi 17 mai 2004
Statut
Membre
Dernière intervention
4 novembre 2005

13 juil. 2004 à 15:12
Merci de ton aide GRenard mais malheureusement cela ne fonctionne pas, la requête n'est pas envoyée avec ton astuce...
0
cs_GRenard
Messages postés
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008

13 juil. 2004 à 17:02
J'Sais pas ske tu fais, mais c'est ca qui faut faire, je fais la même chose (ou presque) pour un INSERT.
0
optimed
Messages postés
18
Date d'inscription
lundi 17 mai 2004
Statut
Membre
Dernière intervention
4 novembre 2005

13 juil. 2004 à 21:11
Tu avais effectivement raison, c'était bien un problème de guillemet!

if ($horairefin==":" )
{$horairefin ='NULL';} 
else {$horairefin=""".$horairefin.""";}


Tout en enlevant les guillemets que j'avais mis pour $horairefin dans la requête d'insertion.

Merci pour ton aide précieuse!
0