Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/07/2007, 15h29   #1
Invité régulier
 
Inscription : mai 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 33
Points : 6
Points : 6
Par défaut Conversion de date

bonjour ,
je travail actuelement sous easy php 1.8.

Mon probleme :

je recupere des dates que j'aimerai placer dans ma base de données , pour ce je dois convertir ma date sous forme dd/mm/yyyy en yyyy/mm/dd

Premierement je recupere ma date que je place dans une variable :

Code :
$date = $_POST['date']; // 27/07/2007
Je me connect ensuite à ma base :

Code :
1
2
mysql_connect('localhost','root','online') OR die("erreur de connexion au serveur");
mysql_select_db('__') OR die("erreur de connexion a la base de donnees");

Et donc voici ma requete :

Code :
1
2
3
4
5
6
$requete = "INSERT INTO install VALUES('',
'$pays',
'$client',
'SELECT DATE_FORMAT('$date', '%Y %M %D')',
'$pc',
'$commentaire')";
J'ai essayer beaucoup de manipulation autour de cette fonction pour formater ma date mais je n'arrive pas a grand chose , je suis debutant et je coince vraiment ..
si quelqu'un a une petite idée concernant mon probleme , merci d'avance
dudezerff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2007, 15h51   #2
Membre émérite
 
Avatar de Mathusalem
 
Inscription : décembre 2003
Messages : 994
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 994
Points : 914
Points : 914
Code :
1
2
INSERT INTO install 
VALUES('pays','client',DATE_FORMAT('$date', '%Y %M %D'),'pc','commentaire')
__________________
Solidarités Nouvelles face au Chômage association loi de 1901, indépendante de tout parti politique et de toute confession religieuse.
Mathusalem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2007, 16h22   #3
Invité régulier
 
Inscription : mai 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 33
Points : 6
Points : 6
Merci pour la reponse mais cela ne focntionne pas , comme si date_format n'etais pas executé

L'echo de ma requete :
Code :
1
2
 
INSERT INTO install VALUES('', 'FR', 'test001',DATE_FORMAT('25/07/2007 ', '%Y %M %D'), 'En Quotation', '56', '56', '56', '56', '56', '', '//')
dudezerff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2007, 17h26   #4
Membre à l'essai
 
Inscription : juillet 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 26
Points : 22
Points : 22
juste une petite remarque, mais je pense que ta fonction ne marche pas parce que ce n'est pas la bonne fonction.

Code :
1
2
mysql> SELECT STR_TO_DATE('25/07/2007', '%m/%d/%Y');
        -> '2007-07-25'
est-ce que ça fait ce que tu desires?

PS: la fonction DATE_FORMAT prend une date de ce format '1997-10-04 22:23:00' (avec ou sans l'heure) en entrée, puis la formate au format demandé.
raspout81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 09h27   #5
Invité régulier
 
Inscription : mai 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 33
Points : 6
Points : 6
Non cela ne marche pas toujours pas , meme avec
Code :
STR_TO_DATE('25/07/2007', '%m/%d/%Y').
J'ai comme l'impression que la fonction n'est pas executé
dudezerff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 11h04   #6
Invité régulier
 
Inscription : mai 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 33
Points : 6
Points : 6
Personne ne sait , ou aurait deja été confronté à ce probleme ?
dudezerff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 11h14   #7
Membre habitué
 
Homme Sébastien
Développeur informatique
Inscription : août 2003
Messages : 252
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : août 2003
Messages : 252
Points : 120
Points : 120
Essaye ca :
Code :
STR_TO_DATE('25/07/2007', '%d/%m/%Y')
smarties est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 11h19   #8
Invité régulier
 
Inscription : mai 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 33
Points : 6
Points : 6
NOn toujours rien
dudezerff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 11h26   #9
Membre régulier
 
Inscription : juin 2005
Messages : 260
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 260
Points : 92
Points : 92
Code :
1
2
3
4
5
6
$requete = "INSERT INTO install VALUES('',
'$pays',
'$client',
'STR_TO_DATE('$date',\'%d/%m/%Y\')',
'$pc',
'$commentaire')";
ca serait plutot quelque chose comme ca non ?
RR instinct est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 11h34   #10
Membre chevronné
 
Avatar de pop_up
 
Inscription : avril 2006
Messages : 833
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 833
Points : 690
Points : 690
comment appelle tu ta requetes ?

avec mysql_query() ?

Il faut que tu debugue ton code donc que tu fasses des "echo" de tes requetes.

part d'une requete simple pour voir si elle marche et essaye avec tes dates
du style :
Code :
1
2
3
$req=mysql_query("select * from TABLE");
$var=mysql_fetch_array($req,1);
echo $var[0];
avec ça tu verras la premiere ligne du resultat de ta requete je crois. (je suis pas un specialiste du php ^^

pop_up est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 11h44   #11
Membre émérite
 
Avatar de Mathusalem
 
Inscription : décembre 2003
Messages : 994
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 994
Points : 914
Points : 914
Citation:
Envoyé par pop_up
comment appelle tu ta requetes ?

avec mysql_query() ?

Il faut que tu debugue ton code donc que tu fasses des "echo" de tes requetes.

part d'une requete simple pour voir si elle marche et essaye avec tes dates
du style :
Code :
1
2
3
$req=mysql_query("select * from TABLE");
$var=mysql_fetch_array($req,1);
echo $var[0];
avec ça tu verras la premiere ligne du resultat de ta requete je crois. (je suis pas un specialiste du php ^^

exact, au lieu d'exécuter ta requête, affiche la avec
ensuite tu la colles dans phpmyadmin et tu bidouilles jusqu'à ce que ça marche.
ensuite tu impactes les changements sur le code, et voila
__________________
Solidarités Nouvelles face au Chômage association loi de 1901, indépendante de tout parti politique et de toute confession religieuse.
Mathusalem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 13h23   #12
Invité régulier
 
Inscription : mai 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 33
Points : 6
Points : 6
C'est que je fais , afficher ma requete .
J'obtiens toujours ce genre de requete :

Code :
INSERT INTO install VALUES('', 'FR', '79845', 'TERESTIAN', 'STR_TO_DATE('26/07/2007 ','%d/%m/%Y/')', 'Attente Infos Client', '1555,23 €', '1170,00 €', '1', '1,5', '10', '12', ' Decline', '', '')

Le STR_TO_DATE reste tel quel .

Si j'execute cette requete dans phpmyadmin voila ce que j'obtiens :

Code :
1
2
3
ERROR: Ponctuation invalide @ 90
STR: /%
SQL: INSERT INTO install VALUES('', 'FR', '79845', 'TERESTIAN', 'STR_TO_DATE('26/07/2007 ','%d/%m/%Y/)', 'Attente Infos Client', '1555,23', '1170,00 €', '1', '1,5', '10', '12', ' Decline', '', '')
dudezerff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 13h30   #13
Membre chevronné
 
Avatar de pop_up
 
Inscription : avril 2006
Messages : 833
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 833
Points : 690
Points : 690
est ce que je dis une connerie en te disant que c'est pas :
'
Code :
1
2
 
STR_TO_DATE('26/07/2007 ','%d/%m/%Y/')'
mais plutot :
Code :
1
2
 
'STR_TO_DATE('26/07/2007','%d/%m/%Y')'
pop_up est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 13h41   #14
Invité régulier
 
Inscription : mai 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 33
Points : 6
Points : 6
De toute maniere en affichant ma requete , à la place de STR_....., je ne devrais pas avoir la date formatée deja ?

Sinon au niveau des slash et autre , j'essaye de tout depuis ce matin mais j'ai tjs ce STr_TO_DATE qui reste dans la requette , pas de date formartée
dudezerff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 13h50   #15
Membre chevronné
 
Avatar de pop_up
 
Inscription : avril 2006
Messages : 833
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 833
Points : 690
Points : 690
mais c'est bien normal que tu ais le STR_TO_DATE puisque tu l'écris dans ta requete. c'est le resultat qu'il faut que tu regardes pour voir si tu as la bonne valeur dans ton champ date.

autre question, pourquoi n'utilises tu pas les fonction php pour le mettre en date?

pop_up est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 14h25   #16
Invité régulier
 
Inscription : mai 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 33
Points : 6
Points : 6
Code :
1
2
3
4
5
6
$requete = "INSERT INTO install VALUES('',
'$pays',
'$askServ',
'$client',
STR_TO_DATE('$date','%d/%m/%Y'),
'$etat',
Comme ceci ca fonctionne
Ma date est bien du type 2007/07/26 dans la base de donnée.

Une autre petite question au passage , pour faire mintenant l'inverse cad afficher à partir de cette meme base la date du type 26/07/2007, je peux faire quelque chose du genre :

Code :
1
2
3
4
5
6
7
8
9
10
$requete = mysql_query("SELECT * FROM install WHERE id='$variableId'");
 
while($row = mysql_fetch_array($requete)){
 
 
$valeurPays = $row['pays'];
$valeurDate = $row[DATE_FORMAT('date', GET_FORMAT(DATE, 'EUR'))]; 
//$valeurDate = $row['date'];
 
}
dudezerff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 14h31   #17
Membre chevronné
 
Avatar de pop_up
 
Inscription : avril 2006
Messages : 833
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 833
Points : 690
Points : 690
Si tu fais
Code :
STR_TO_DATE('$date','%d/%m/%Y')
et que tu obtiens 2007/07/26 alors ça doit pas marcher ?
tu devrais avoir 26/07/2007

Ensuite pour ce qui est de formatter ta date comme tu le veux alors il faut que ta variable soit bien une date et il te faut utiliser FORMAT_DATE(date, format)

pop_up est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 14h37   #18
Invité régulier
 
Inscription : mai 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 33
Points : 6
Points : 6
Oui effectivement il y a quelque chose qui m'echape la , je le lui donne bien une date du type 26/07/2007 ($date) et avec :

Code :
STR_TO_DATE('$date','%d/%m/%Y')
jobtiens une date du style 2007/07/26 dans la base de données
Mais bon c'est que je veux obtenir ......


Sinon pour le FORMAT_DATE , avec ceci :

Code :
$valeurDate = $row[FORMAT_DATE('date', GET_FORMAT(date, 'EUR'))];
j'obtiens Fatal error: Call to undefined function: format_date() in , je dois oublier quelque chose ^^.
dudezerff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 15h00   #19
Membre chevronné
 
Avatar de pop_up
 
Inscription : avril 2006
Messages : 833
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 833
Points : 690
Points : 690
excuse moi, j'etait dans les vap' . c'est DATE_FORMAT

http://dev.mysql.com/doc/refman/5.0/...functions.html
pop_up est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 15h10   #20
Invité régulier
 
Inscription : mai 2006
Messages : 33
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 33
Points : 6
Points : 6
Oui , mais je dois me tromper dans la syntaxe encore une foi

Code :
$valeurDate = $row[DATE_FORMAT(date, '%d/%m/%Y')];
Apparement cela ne focntionne pas ! J'ai tjs le undefined function comme erreur.
dudezerff est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h05.


 
 
 
 
Partenaires

Hébergement Web