IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Transformer une date française pour insérer dans mysql


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 41
    Points : 33
    Points
    33
    Par défaut Transformer une date française pour insérer dans mysql
    Bonjour,

    Je suis débutante en PHP/mysql.
    J'ai regardé les messages du forum et doc mysql mais la requête suivant ne fait pas ce que je veux.
    Où me suis-je trompée ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $reponse = mysql_query('LOAD DATA INFILE \'price.txt\' INTO TABLE src_ingram_price FIELDS TERMINATED BY \',\' ENCLOSED BY \'\"\' LINES TERMINATED BY \'\\n\'
    (Date_debut_promotion,Date_fin_promotion)
    SET Date_debut_promotion=DATE_FORMAT(STR_TO_DATE(Date_debut_promotion,GET_FORMAT(DATE,\'EUR\')),GET_FORMAT(DATE,\'ISO\'));') or die("Impossible de remplir la table : " . mysql_error());
    En fait j'ai un fichier plat qui contient deux champs (entourés de quillemets et séparés par virgule) date au format français (ex : "14/04/08","25/04/08").

    Quand j'execute mon code load data infile, au lieu d'avoir
    Date_debut_promotion = 2008/04/14
    Date_fin_promotion=2008/04/25
    j'ai Date_debut_promotion = 0000-00-00
    Date_fin_promotion=2025-04-08

    Au début j'avais mis ISO partout pour le format de date, mais ça ne marche pas non plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $reponse = mysql_query('LOAD DATA INFILE \'price.txt\' INTO TABLE src_ingram_price FIELDS TERMINATED BY \',\' ENCLOSED BY \'\"\' LINES TERMINATED BY \'\\n\'
    (Date_debut_promotion,Date_fin_promotion)
    SET Date_debut_promotion=DATE_FORMAT(STR_TO_DATE(Date_debut_promotion,GET_FORMAT(DATE,\'ISO\')),GET_FORMAT(DATE,\'ISO\'));') or die("Impossible de remplir la table : " . mysql_error());
    Merci de me dire ce qui ne va pas dans mon code ? Car je suis à court d'idée !

    Boubou

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Et simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SET Date_debut_promotion=DATE_FORMAT(Date_debut_promotion,GET_FORMAT(
    DATE,"ISO"))
    ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 41
    Points : 33
    Points
    33
    Par défaut
    Bonjour sabotage,

    J'ai essayé mais ça ne fonctionne pas. ça donne :
    2014-04-08 et 2025-04-08 pour le second champs (au lieu de 2008-04-14 et 2008-04-25). Comme je ne mettais pas la fonction DATE_FORMAT.

    J'ai l'impression qu'il ne prend pas en compte la date passée dans la fonction DATE_FORMAT. J'ai vu dans un message du forum que quelqu'un mettait un @ comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $reponse = mysql_query('LOAD DATA INFILE \'price.txt\' INTO TABLE src_ingram_price FIELDS TERMINATED BY \',\' ENCLOSED BY \'\"\' LINES TERMINATED BY \'\\n\'
    (@Date_debut,Date_fin_promotion)
    SET Date_debut_promotion=DATE_FORMAT(STR_TO_DATE(@Date_debut,GET_FORMAT(DATE,\'EUR\')),GET_FORMAT(DATE,\'ISO\'));') or die("Impossible de remplir la table : " . mysql_error());
    mais j'ai tester et ça ne fonctionne pas.
    Est-ce que j'ai bien appliquer le @ ou faut-il un paramétrage de mysql ?

    Merci d'avance.

    Boubou

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Après relecture de ce que font les fonctions je propose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET Date_debut_promotion=STR_TO_DATE(Date_debut_promotion,"%d/%m/%y")
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [XML] Récupérer XML pour insérer dans MySQL
    Par poloniax dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 12/11/2010, 15h50
  2. [MySQL] stoker une date du format francophone dans mysql
    Par phpines dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/03/2009, 15h29
  3. [SQL] Transformer une date d'un calendrier en timestamp pour trie
    Par Seta-san dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/10/2007, 20h37
  4. [VBA] Calcul pour insérer dans une textebox
    Par Yanmeunier dans le forum IHM
    Réponses: 13
    Dernier message: 15/03/2006, 16h38
  5. Insérer une date au format français dans un champ
    Par EpOnYmE187 dans le forum Installation
    Réponses: 2
    Dernier message: 14/06/2005, 12h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo