Récupérer une date dans mysql jj/mm/aaaa

Résolu
Andre13 Messages postés 29 Statut Membre -  
vlmath Messages postés 833 Statut Contributeur -
Bonjour,
Je suis totalement débutant PHP MYSQL
J'ai une base de données MYSQL d'ou je récupère les données pour les afficher de la façon suivante

<?php echo '<p><strong>' . $donnees['nom'] . '</strong> prénom :<br />' . $donnees['prenom'] . '<br/>' . 'né(e) le :' . date('d/m/Y', $donnees['date_naissance']). </p>';?>

Le Nom et prenom c'est bon mais la date_naissance, impossible avec l'erreur:
Notice: A non well formed numeric value encountered in C:\Program Files\EasyPHP 2.0b1\www\minitest.php on line 65

Je saisi ma date_naissance au format AAAA-MM-DD (puisqu'il ne comprend rien d'autre) l'envoi en base mysql et veut la récupérer au format jour/mois/année
2ème Question comment envoyer une date à mysql au format jour/mois/année et est ce possible
Merci
Configuration: Windows XP
Internet Explorer 7.0

3 réponses

  1. Alain_42 Messages postés 5413 Statut Membre 904
     
    Salut,

    il faut décomposer la date lue dans mysql et la recomposer dans le format que tu veux:

    //on fait un tableau en décomposant par rapport à -
    $array_date_mysql=explode("-",$donnees['date_naissance']);
    //on met au format voulu
    $date_fr=$array_date_mysql[2]."/".$array_date_mysql[1]."/".$array_date_mysql[0];
    
    //affichage:
    <?php 
    echo "<p><strong>".$donnees['nom']."</strong> prénom :<br />".$donnees['prenom']."<br/> né(e) le :".$date_fr."</p>";
    
    ?> 
    
    


    et attention: si tu commences et fini ta chaine echo par des ' tu ne peux pas en mettre à l'intérieur $donnees['nom'] par exemple

    soit celle de l'intérieur tu les échappes par des \ comme ça \'

    soit tu mets des " en début et fin de chaine et pour concaténer et tu peux alors mettre des ' entre

    comme je t'ai fait ci dessus

    Connais tu le site:

    https://openclassrooms.com/fr/

    @lain
    3
    1. Andre13 Messages postés 29 Statut Membre 2
       
      Salut,
      En fait je plante maintenant sur la ligne:
      $array_date_mysql=explode("-",$donnees['date_naissance']);
      ma date 1946-01-02 (c'est au bon format date)
      avec le message
      Parse error: parse error, unexpected T_VARIABLE in C:\Program Files\EasyPHP 2.0b1\www\minitest.php on line 64
      Sinon je viens de terminer mon initaition avec le site du zéro FABULEUX.
      Merci de ton aide
      0
      1. Alain_42 Messages postés 5413 Statut Membre 904 > Andre13 Messages postés 29 Statut Membre
         
        Bonjour,

        c'est la variable $donnees['date_naissance'] qui est en cause, as tu bien mis cette ligne après avoir extrait les infos de la base (après $donnees=mysql_fetch......) ?

        Est ce que le champ date_naissance est bien libellé ainsi dans ta table ?

        @lain
        0
      2. Andre13 Messages postés 29 Statut Membre 2 > Alain_42 Messages postés 5413 Statut Membre
         
        c'est la variable $donnees['date_naissance'] qui est en cause,effectivement
        j'ai bien extrait les infos de la base (après $donnees=mysql_fetch......) ? puis j'ai fermé php ?>
        cela donne
        $donnees = mysql_fetch_array($reponse)
        ?>

        <?php
        $chaine_date = $donnees['date_naissance'];// inutile on peut l'écrire en direct voir ci dessous
        $array_chaine = explode('-', $donnees['date_naissance']);
        Merci de ton aide
        0
  2. MrSlave Messages postés 2657 Statut Membre 147
     
    Pour envoyer une date, tu définie le champ en Date et tu l'envoie comme un simple varchar.
    0
    1. Andre13 Messages postés 29 Statut Membre 2
       
      Bonjour,
      J'ai défini mon champ en date dans la base mysql que je charge avec une boite option"text" mais il exige le format AAAA-MM-DD si je charge DD/MM/AAAA j'obtient une date que est 0000-00-00.
      Comment envoyer au format VARCHAR ()quand le champ est "DATE" je ne vois pas ?
      merci
      0
  3. vlmath Messages postés 833 Statut Contributeur 160
     
    Salut,

    Le code Alain_42 marche, mais il y a "mieux" :

    Date_format
    Fonction sur les dates

    Il me semble que tu peux ainsi faire la conversion dans les deux sens (vers et de la base)

    @Bientôt
    0