tranformer nombre en Date SQL

Eléphant du PHP | 258 Messages

06 nov. 2006, 15:55

Bon voila j'ai trois nombre que l'on recupere d'un formulaire sous la forme de variable ($jour, $mois,$anneé) et j'aimerais transformer ces nombres en date sql.

Comment doit-je m'y prendre?

Merci d'avance

Avatar du membre
ViPHP
ViPHP | 3008 Messages

06 nov. 2006, 16:04

Quand tu met ($jour, $mois,$anneé), ça veut dure que c'est dans ce format que tu récupères la date ? Ou est-ce pour nous dire qu'il s'agit de ces 3 variables ?

Si c'est ce dernier cas, fait juste une concaténation non ?

NB : $anneé pas bon, $annee c'est mieux sans accent.

Eléphant du PHP | 258 Messages

06 nov. 2006, 16:10

c'est le dernier cas
exemple:

on entre 12 pour le jours et puis apres on fait un truc comme sa :
if (!isset($_POST['Jour'] )) $Jour=0; else $Jour=$_POST['Jour'];
Pour la concatenation tu veut dire un truc comme sa :
$date ='$jour.$mois.$annee'

Avatar du membre
ViPHP
ViPHP | 3008 Messages

06 nov. 2006, 16:13

la date MySQL étant de format aaaa-mm-jj, il te faut mettre :
$date = $annee."-".$mois."-".$jour;

Eléphant du PHP | 258 Messages

06 nov. 2006, 16:24

Bon sa ne marche pas, pourtant sa me met bien la date comme il faut voila quelque info, tout d'abord se qui est passer par post:

Array
(
[TitreAgenda] => essai titre
[Jourag] => 10
[Moisag] => 06
[Anneeag] => 2007
[select] => 10
[messagea] => essai texte
[actionajou] => Ajouter
[IDa] =>


)
Array
(
)
Array
(
)

Puis ma requete SQL pour inseret un enregistrement :

INSERT INTO tagenda (DATEa,TITagenda,TEXagenda) VALUES (2007-06-10,'essai titre','essai texte')

Mais sa me met 0000-00-00 dans ma BD

ViPHP
ViPHP | 1961 Messages

06 nov. 2006, 16:30

Bonjour,

Si tu regardes ta requète
VALUES (2007-06-10
Tu vois que tu fais une soustraction et ça donne 1991, c'est pas une date, solution entre guillemets ou apostrophes VALUES ('2007-06-10'
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Avatar du membre
ViPHP
ViPHP | 3008 Messages

06 nov. 2006, 16:32

Normal :
INSERT INTO tagenda (DATEa,TITagenda,TEXagenda) VALUES ('2007-06-10','essai titre','essai texte')
Il faut entourer ta date de simples quotes.

Eléphant du PHP | 258 Messages

06 nov. 2006, 16:33

Je me suis apercu de cette erreur mais sa ne marche toujours pas.

Eléphant du PHP | 258 Messages

06 nov. 2006, 16:35

Autant pour moi je l'avais corriger dans mon echo mais pas dans l'autre.

Sa marche merci.

Eléphant du PHP | 258 Messages

06 nov. 2006, 16:56

Par contre je suis desolé d'avoir enlevé le resolu mais je ne pense pas que sa soit la peine d'ouvrir un autre sujet pour sa.

Je voulais juste savoir, si une fois la date enregistrer dans la BD sous la forme date SQL (exemple 2006-10-04), on peut recupere et afficher juste le jour ou le mois enfin un des trois nombre?

Qu'est ce qui faut utiliser?

Avatar du membre
ViPHP
ViPHP | 3008 Messages

06 nov. 2006, 16:58

Avec explode ça devrait faire l'affaire. Exemple :
$str = "2003-10-30" 
$date = explode("-",$str); 

$d = $date[2]; 

Eléphant du PHP | 258 Messages

06 nov. 2006, 17:02

Ok merci à tous ca marche.

Bravo.

Eléphant du PHP | 193 Messages

06 nov. 2006, 17:04

Plus simplement, sans php, MySQL peut te donner ces infos avec DAY, MONTH ou YEAR

Code : Tout sélectionner

SELECT DAY(DATEa) FROM tagenda

Code : Tout sélectionner

SELECT MONTH(DATEa) FROM tagenda

Code : Tout sélectionner

SELECT YEAR(DATEa) FROM tagenda

Eléphant du PHP | 258 Messages

06 nov. 2006, 17:12

Merci Vikchill.

Je vais essayer.