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 dans un champ DATE


Sujet :

PHP & Base de données

  1. #1
    Membre averti

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 51
    Par défaut insertion d'une date dans un champ DATE
    Bonjour à tous..

    J'aimerais inserer une date rentré par l'utilisateur grace a un formulaire (un champ texte) dans un champs de ma table, le champ fin_vip qui est de type DATE.

    Evidemment la date rentré par le formulaire est de cette forme : AAAA-MM-JJ


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $date_fin = mysql_real_escape_string($_POST['date_fin']);
        $sql = 'UPDATE cb_users SET vip=1, fin_vip='.$date_fin.' WHERE usr_name="'.$pseudo.'"';
            $requete = mysql_query($sql)  or die(mysql_error());
    malheureusement pour l'instant cette requete met a chaque fois mon champ fin_vip à 0000-00-00 ....

    Si j'affiche ma requete :

    UPDATE cb_users SET vip=1, fin_vip=1990-06-23 WHERE usr_name="Snipy"
    L'erreur doit etre bete, mais pour l'instant je ne vois pas.

    merci d'avance !

  2. #2
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 180
    Par défaut
    Sans vouloir dire de bêtises, peut-être parce que ce n'est formaté en date via PHP. As-tu essayé en rajoutant des guillemets tout de même? As-tu bien vérifié que ta variable ne contient aucun espace?

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Par défaut
    Bonjour,

    il te manque les apostrophes pour la date dans ta requête

    essaie ca, ca devrait fonctionner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE cb_users SET vip=1, fin_vip="1990-06-23" WHERE usr_name="Snipy"

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 51
    Par défaut
    MEa Culpa --'


    Maintenant, si je veux rentrer la date sous le format
    18/01/2010 dans mon formulaire, quel est la facon la plus simple de pouvoir l'inserer par la suite dans mon champ de type DATE.
    De faire la conversion par une fonction mysql ou en php ?

  5. #5
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Citation Envoyé par Snipy Voir le message
    Maintenant, si je veux rentrer la date sous le format
    18/01/2010 dans mon formulaire, quel est la facon la plus simple de pouvoir l'inserer par la suite dans mon champ de type DATE.
    De faire la conversion par une fonction mysql ou en php ?
    Pas la peine, un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str_replace( '/', '-', $ta_date );
    suffiras.

  6. #6
    Membre averti

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 51
    Par défaut
    Pas tout a fait, il faut aussi inverser l'année et le jour

    car dans la bdd c'est au format : AAAA/MM/JJ

    Et j'aimerais qu'on puisse inserer via le formulaire au format : JJ/MM/AAAA

  7. #7
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    En MySQL tu peux recevoir la date dans le bon format

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT DATE_FORMAT(fin_vip,'%d/%m/%Y') FROM cb_users

  8. #8
    Membre averti

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 51
    Par défaut
    Pour le SELECt c'est effectivement ce que je fais,
    mais la je suis dans le cas contraire,

    je veux que l'utilisateur rentre la date souhaité dans le formulaire dans le format suivant :
    JJ/MM/AAAA et qu'une fonction la transforme dn
    ans le bon format (c'est a dire AAAA-MM-JJ ) pour que la valeur soit inserer dans ma bdd

  9. #9
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Il te faut faire écrire une petite fonction de conversion de format de date dans ton code php.
    Voici un example, il y en a des tas d'autres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function Fr_Date_MySQL($myDate){
             $annee = substr($myDate, 6, 4);
             $mois = substr($myDate, 3, 2);
             $jour = substr($myDate, 0, 2);
             $DD = $annee . '-' . $mois . '-' . $jour;
    return $DD;
    }
    Ais je répondu a ta question ?

  10. #10
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Citation Envoyé par Snipy Voir le message
    je veux que l'utilisateur rentre la date souhaité dans le formulaire dans le format suivant :
    JJ/MM/AAAA et qu'une fonction la transforme dn
    ans le bon format (c'est a dire AAAA-MM-JJ ) pour que la valeur soit inserer dans ma bdd
    Fonction STR_TO_DATE (faq / doc).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dateus = implode('-', array_reverse(explode('/', $datefr)));

  11. #11
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    ou encore...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $date = '22/10/2010';
    $date = str_replace('/','-',$date);
    $date = new DateTime($date);
    echo $date->format('Y-m-d');

  12. #12
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Citation Envoyé par ABCIWEB Voir le message
    ou encore...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $date = '22/10/2010';
    $date = str_replace('/','-',$date);
    $date = new DateTime($date);
    echo $date->format('Y-m-d');
    Cella me semble une excellente réponse, ensuite grâce à l'instanciation de la classe DateTime, il serra possible de faire un tas de calcul sur les dates.

    Je ne comprend pas pourquoi on lui à mis une note négative ?

  13. #13
    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
    Pour moi le seul interet d'utiliser PHP pour une conversion de date c'est de controler le validité de la date.

    Si on ne le fais pas, STR_TO_DATE est la seule bonne solution.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #14
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Pour moi le seul interet d'utiliser PHP pour une conversion de date c'est de controler le validité de la date.

    Si on ne le fais pas, STR_TO_DATE est la seule bonne solution.
    Oui enfin comme l'a remarqué MaitrePylos, mom code faisait suite aux exemples de code php donnés par riete puis par julp. C'était juste pour compléter et attirer l'attention sur la classe DateTime.

    Maintenant comme tu le précise fort bien, c'est plus optimisé de faire la conversion avec mysql

  15. #15
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Citation Envoyé par MaitrePylos Voir le message
    Cella me semble une excellente réponse, ensuite grâce à l'instanciation de la classe DateTime, il serra possible de faire un tas de calcul sur les dates.

    Je ne comprend pas pourquoi on lui à mis une note négative ?
    je n'ai pas donner la note négative, mais comme Sabotage je ne vois pas l'intérêt de faire cela vu ce qui vient à la suite.

Discussions similaires

  1. [LibreOffice][Tableur] Récupérer date d'un champ date dans un formulaire
    Par Eklaes dans le forum OpenOffice & LibreOffice
    Réponses: 4
    Dernier message: 11/12/2014, 11h11
  2. [AC-2003] Vider champ date si autre champ date rempli
    Par lucas-18 dans le forum IHM
    Réponses: 3
    Dernier message: 19/01/2011, 20h25
  3. Insertion d'une image dans un champs d'une table
    Par aminus19 dans le forum Requêtes
    Réponses: 1
    Dernier message: 17/06/2010, 15h17
  4. Requette d insertion d une valeur dans un champ d une table
    Par djibsonne dans le forum Langage SQL
    Réponses: 3
    Dernier message: 29/05/2010, 10h52
  5. Insérer une heure dans un champs date
    Par erox44 dans le forum SQL
    Réponses: 7
    Dernier message: 22/04/2008, 12h25

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