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 :

Insertion d'une date depuis un formulaire [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 3
    Par défaut Insertion d'une date depuis un formulaire
    Bonjour à tous,
    Cela fait pas mal de temps que je recherche une solution à mon problème.
    Pour l'instant, je n'ai encore rien trouvé de satisfaisant...

    Mon soucis est le suivant:

    J'ai un formulaire avec un "spry validation text field" contenant une date au format dd.mm.yyyy et je souhaite la stocker dans ma base de donnée en format yyyy-mm-dd.
    J'ai trouvé plusieurs astuce de conversion, mais n'étant pas à l'aise en PHP, je ne sais pas trop ou les insérer dans mon code.

    Le top du top, serait une petite explication de la marche à suivre, et si possible mon code modifié en conséquence (histoire d'être sûr!!)

    Est ce que une bonne âme pourrait me prêter main forte?


    Alors voilà ce que j'ai à disposition:

    Le code de mon "spry validation text field"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="text" name="Date_Livraison_Souhaite" id="Date_Livraison_Souhaite" />
              <br />
              <span class="textfieldRequiredMsg">A value is required.</span><span class="textfieldInvalidFormatMsg">Invalid format.</span></span></p>
    Et le code de la récupération des info du formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "Validation")) {
      $insertSQL = sprintf("INSERT INTO tbl_commandes_sorties (Site_ID, ER_Number, CES_ID, Ordering_form_ref, UP_Code, Date_Commande, Date_Livraison_Souhaite, FK_Lieu_de_livraison, Statut, Commentaires, FK_User) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                           GetSQLValueString($_POST['Site_ID'], "text"),
                           GetSQLValueString($_POST['ER_Number'], "text"),
                           GetSQLValueString($_POST['CES_ID'], "text"),
                           GetSQLValueString($_POST['Ordering_form_ref'], "text"),
                           GetSQLValueString($_POST['UP_Code'], "text"),
                           GetSQLValueString($_POST['Date_Commande'], "date"),
                           GetSQLValueString($_POST['Date_Livraison_Souhaite'], "date"),
                           GetSQLValueString($_POST['FK_Lieu_de_livraison'], "int"),
                           GetSQLValueString($_POST['Statut'], "int"),
                           GetSQLValueString($_POST['Commentaires'], "text"),
                           GetSQLValueString($_POST['FK_User'], "text"));
    Je vous remercie d'avance!!

  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
    Par défaut
    Le plus simple est d'utiliser str_to_date()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $insertSQL = sprintf("INSERT INTO tbl_commandes_sorties (Site_ID, ER_Number, CES_ID, Ordering_form_ref, UP_Code, Date_Commande, Date_Livraison_Souhaite, FK_Lieu_de_livraison, Statut, Commentaires, FK_User) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                           GetSQLValueString($_POST['Site_ID'], "text"),
                           GetSQLValueString($_POST['ER_Number'], "text"),
                           GetSQLValueString($_POST['CES_ID'], "text"),
                           GetSQLValueString($_POST['Ordering_form_ref'], "text"),
                           GetSQLValueString($_POST['UP_Code'], "text"),
                           "STR_TO_DATE(" . GetSQLValueString($_POST['Date_Commande'], "date") . ",'%d.%m.%Y')",
                           "STR_TO_DATE(" . GetSQLValueString($_POST['Date_Livraison_Souhaite'], "date") . ",'%d.%m.%Y')",
                           GetSQLValueString($_POST['FK_Lieu_de_livraison'], "int"),
                           GetSQLValueString($_POST['Statut'], "int"),
                           GetSQLValueString($_POST['Commentaires'], "text"),
                           GetSQLValueString($_POST['FK_User'], "text"));
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 3
    Par défaut

    Merci! ça marche impec!

    Et dernière petite question:
    Pour faire la manip inverse, c'est à dire que le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Delivery Deadline: <?php  echo $row_Order_Detail_1['Date_Livraison_Souhaite']; ?>
    renvoye la valeur DATE en format dd.mm.yyyy. Je dois m'y prendre comment? Car comme son nom l'indique, str_to_date() convertit un string en date, donc l'inverse doit être un peu différent...

  4. #4
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    function dateswitch($Date)
    {
    $dates=explode("-", " ".$Date);
    $Year=$dates[0];
    $Month=$dates[1];
    $Day=$dates[2];

    return $Day."-".$Month."-".$Year;
    }

  5. #5
    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
    Par défaut
    La fonction mysql inverse est date_format()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DATE_FORMAT( Date_Livraison_Souhaite,'%d/%m/%Y') as Date_Livraison_Souhaite FROM tbl_commandes_sorties
    Toutes les fonctions :
    http://dev.mysql.com/doc/refman/5.0/...functions.html
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 3
    Par défaut
    Merci à vous deux pour vos réponses!

    Problème résolu!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/05/2012, 16h00
  2. insere une date dans un formulaire
    Par lepeintre dans le forum ASP
    Réponses: 5
    Dernier message: 13/05/2005, 10h46
  3. insertion d'une date dans visual foxpro
    Par yvescollet dans le forum Bases de données
    Réponses: 4
    Dernier message: 10/05/2005, 15h39
  4. Réponses: 2
    Dernier message: 22/07/2004, 00h27
  5. Comment récuperer une date depuis une chaine?
    Par shopoto dans le forum ASP
    Réponses: 4
    Dernier message: 12/05/2004, 16h17

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