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 :

Problème d'enregistrement des dates


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2011
    Messages : 19
    Par défaut Problème d'enregistrement des dates
    Bonjour à tous!

    Contexte:

    J'ai un formulaire organiser dans un tableau où j'ai un champ date qui a pour valeur la date du jour.

    PHP 5.3.5, MySQL 5.5.8, Apache 2.2.17.

    Voici mon problème:
    Je n'arrive pas à enregistrer la date dans ma bdd en mysql. Il m'affiche 0 à la place. Pourtant mon champ date est de type date.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="datesaisie" value="<?php echo date('d/m/Y');?>">
    ensuite je récupère par la méthode POST:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $datesaisie=$_POST['datesaisie'];
    et je fais ma requête d'insertion:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql = "INSERT INTO t_recette(dateSaisie) values ('$datesaisie')";
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    Quelqu’un pourrait m'aider? Merci par avance.

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 815
    Billets dans le blog
    14
    Par défaut
    En SQL, les dates sont au format 'aaaa-mm-jj', il faut donc convertir au bon format :
    - soit dans le code PHP ;
    - soit grâce à la fonction STR_TO_DATE de MySQL.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2011
    Messages : 19
    Par défaut
    Peux-tu détaillé avec un exemple?

    J'ai essayé de plusieurs façons:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql = "INSERT INTO t_recette(dateSaisie) values (strtodate($datesaisie))";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql = "INSERT INTO t_recette(dateSaisie) values (strtodate('$datesaisie'))";
    Merci.

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    Il faut lire le lien de CinePhil sur str_to_date().
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "INSERT INTO t_recette(dateSaisie) VALUES (STR_TO_DATE('$datesaisie', '%d/%m/%Y'))"

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2011
    Messages : 19
    Par défaut
    J'utilise cette fonction pour un affichage et c'est ok!
    En ce qui concerne l'insertion dans ma bdd il m'affiche "0000-00-00"
    ensuite il faut que je puisse faire un tri c'est à dire:

    SELECT IdRecette, Recette
    FROM t_recette
    WHERE dateSaisie=?

    Je rencontre beaucoup de difficultés en ce qui concerne les dates.

    Dans ma bdd en mysql mon champ "dateSaisie" est de type DATE donc quand je réalise une insertion il m'affiche bien dans ma bdd 2011-12-01
    mais lorsque je fais un tri dans la clause "WHERE" d'un SELECT par exemple lorsque je mets dateSaisie=curdate() ou encore dateSaisie=now() il m'affiche les résultats de n'importe quand.

    Il ne me reste que ce problème et mon application sera enfin close.

    S'il vous plaît un p'tit coup de pouce encore! Merci.

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Tu peux aussi formater ta date en PHP avant de la présenter à MySQL comme ceci :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $mysqlDate = DateTime::createFromFormat('d/m/Y', $date)->format('Y-m-d');

Discussions similaires

  1. Réponses: 10
    Dernier message: 30/04/2011, 15h12
  2. [Dates] problème de formatage des dates
    Par briviere dans le forum Langage
    Réponses: 3
    Dernier message: 14/10/2007, 19h40
  3. problème de format des dates!
    Par NicolasMO dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 18/09/2007, 11h17
  4. Réponses: 1
    Dernier message: 27/06/2007, 08h44
  5. Problèmes Test sur des dates
    Par guigui11 dans le forum ASP
    Réponses: 1
    Dernier message: 11/12/2006, 16h18

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