Page 1 sur 1

tranformer nombre en Date SQL

Posté : 06 nov. 2006, 15:55
par 2501gigi
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

Posté : 06 nov. 2006, 16:04
par charabia
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.

Posté : 06 nov. 2006, 16:10
par 2501gigi
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'

Posté : 06 nov. 2006, 16:13
par charabia
la date MySQL étant de format aaaa-mm-jj, il te faut mettre :
$date = $annee."-".$mois."-".$jour;

Posté : 06 nov. 2006, 16:24
par 2501gigi
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

Posté : 06 nov. 2006, 16:30
par Ajoloca
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'

Posté : 06 nov. 2006, 16:32
par charabia
Normal :
INSERT INTO tagenda (DATEa,TITagenda,TEXagenda) VALUES ('2007-06-10','essai titre','essai texte')
Il faut entourer ta date de simples quotes.

Posté : 06 nov. 2006, 16:33
par 2501gigi
Je me suis apercu de cette erreur mais sa ne marche toujours pas.

Posté : 06 nov. 2006, 16:35
par 2501gigi
Autant pour moi je l'avais corriger dans mon echo mais pas dans l'autre.

Sa marche merci.

Posté : 06 nov. 2006, 16:56
par 2501gigi
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?

Posté : 06 nov. 2006, 16:58
par charabia
Avec explode ça devrait faire l'affaire. Exemple :
$str = "2003-10-30" 
$date = explode("-",$str); 

$d = $date[2]; 

Posté : 06 nov. 2006, 17:02
par 2501gigi
Ok merci à tous ca marche.

Bravo.

Posté : 06 nov. 2006, 17:04
par Vikchill
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

Posté : 06 nov. 2006, 17:12
par 2501gigi
Merci Vikchill.

Je vais essayer.