Insertion dans BDD de dates

Eléphant du PHP | 424 Messages

17 août 2006, 13:59

Bonjour,

J'ai un champ date de naissance comprenant :
<input name="naissancej" type="text" class="label" id="naissancej" value="<? 
echo $_SESSION['naissancej'] ?>" size="2" maxlength="2" onkeyup="sautChamp(this.id, 'naissancem');" />
</label>
                                  <span class="cxpb6poura"><strong> / </strong></span>
                                  <input name="naissancem" type="text" class="label" id="naissancem" value="<? 
echo $_SESSION['naissancem'] ?>" size="2" maxlength="2"onkeyup="sautChamp(this.id, 'naissancea');" />
                                  <span class="cxpb6poura"> /</span>
                                  <input name="naissancea" type="text" class="label" id="naissancea" value="<? 
echo $_SESSION['naissancea'] ?>" size="4" maxlength="4" onkeyup="sautChamp4(this.id, 'permisaj');" />
                                  <?php $naissancejour=$_SESSION['naissancej'];
			   $naissancemois=$_SESSION['naissancem'];
			    $naissanceannee=$_SESSION['naissancea'];
				$naissance="$naissancejour/$naissancemois/$naissanceannee" ; ?>
                                  <input name="naissance" id="naissance"  type="hidden" value="<? 
echo $_SESSION['naissance'] ?>"/>
                                

Je n'arrive pas à enregistrer dans ma base la date de naissance sous forme jj/mm/aaaa
cette ligne n'a pas l'air de fonctionner :
$naissance="$naissancejour/$naissancemois/$naissanceannee"
merci pour votre aide
Youpi Youpi Yo !

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

17 août 2006, 15:59

Bonjour,

Tu as bien fait attention au type de champ dans ta base SQL?
N'oublie pas que les champs de type "DATE" doivent être au format Y-m-d et non d/m/Y
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 424 Messages

18 août 2006, 16:08

Je reviens vers vous car je n'y arrive pas !

Comment faire pour rassembler Trois veleurs pour finalement obtenir une date... je m'explique :

J'ai
un champ naissancej
un champ naissancem
un champ naissancea
un champ naissance

Avant mon insertion je fais :
<?php $naissancejour=$_SESSION['naissancej']; 
               $naissancemois=$_SESSION['naissancem']; 
                $naissanceannee=$_SESSION['naissancea']; 
                $naissance="$naissancejour/$naissancemois/$naissanceannee" ; ?> 
J'indique donc que naissance = le jour / le mois / lannée

Mais rien ne s'affiche dans ma base et la valeur de naissance et vide...

Pourriez vous m'indiquer comment faire pour que mon champ naissance affiche une veleur ?

merci
Youpi Youpi Yo !

ViPHP
ViPHP | 2144 Messages

18 août 2006, 16:19

Bonjour,


N'oublie pas que les champs de type "DATE" doivent être au format Y-m-d et non d/m/Y
Comme @rthur te l'a écrit plus haut, les champ date de mysql sont au format: AAAA-MM-JJ et pas JJ-MM-AAAA.
Et ce pour permettre les tris chronologiques...

Eléphant du PHP | 424 Messages

18 août 2006, 16:21

Je ne comprend pas quelque chose :

Si dans ma base sql j'indique que mon champ naissance est au format VARCHAR (255)... et que j'écrit 23/01/2006 mysql sait qu'il s'agit d'une date ? à cause du format ?

Merci
Youpi Youpi Yo !

ViPHP
ViPHP | 2144 Messages

18 août 2006, 16:24

non, mysql ne le sait pas, pour lui c'est alors une simple chaine de caractère, c'est pour ça que pour les dates, il existe le champ notamment des types spécifique tel que "DATE"