Rechercher : dans
Par :

Enregistrer date format fr dans BDD MySQL

Dernière réponse le 26 avr 2009 à 20:35:07 D_AmOn, le 26 avr 2009 à 17:36:44 
 Signaler ce message aux modérateurs

Bonjour,

Je me casse la tête depuis plusieurs jours avec les dates !!
Voici mon problème : le visiteur insère dans un champ sa date de naissance (au format jj/mm/aaaa). Jusque la tout va bien. Mais impossible de convertir cette date en format américain (yyyy-mm-dd) pour la rentrer dans MySQL !! Quelqu'un peu t-il m'aider svp =( J'ai fait de nombreux forums mais impossible de trouver la réponse...

Voici mon code :

<?php

mysql_connect("localhost", "Boum", "");
mysql_select_db("Test");


if (isset($_POST['dateNaissance']))
{
$dateNaissance = mysql_real_escape_string(htmlspecialchars($_POST['dateNaissance']));

mysql_query("INSERT INTO Membre VALUES('" . STR_TO_DATE('$dateNaissance', '%d/%m/%Y') . "')");

}

?>

PS : je suis débutant en PHP/MySQL...

Configuration: Windows Vista
Firefox 3.0.9

Meilleures réponses pour « Enregistrer date format fr dans BDD MySQL » dans :
Sauvegarde restauration base de données Mysql VoirL'article suivant va présenter la manière la plus facile pour sauvegarder et restaurer les bases de données Mysql. Sauvegarde Pour sauvegarder une base de données existante il est conseillé de créer un dump. Pour dumper toutes les bases de...
Fichier DAT VoirFormat DAT Un fichier DAT Un fichier .dat est un fichier de données (.DAT signifie data). En général, il s'agit d'un fichier binaire, créé par un programme et utilisable uniquement par ce programme, ce qui signifie qu'il n'est pas censé être ouvert...
Importer et exporter des données sous MySQL VoirImportation et exportation Les Système de Gestion de Bases de Données tels que MySQL permettent de manipuler facilement et avec beaucoup de souplesse un très important volume de données. Toutefois, aussi robuste soit MySQL, il peut être intéressant...
Javascript - L'objet Date VoirLes particularités de l'objet Date L'objet Date permet de travailler avec toutes les variables qui concernent les dates et la gestion du temps. Il s'agit d'un objet inclus de façon native dans Javascript, et que l'on peut toujours utiliser. La...

1

Alain_42, le 26 avr 2009 à 19:43:35
  • +1

Voilà:

if (isset($_POST['dateNaissance'])){
$dateNaissance_fr=htmlspecialchars($_POST['dateNaissance']);­
$array_date_naissance=explode("/",$dateNaissance_fr);
$dateNaissance_mysql=$array_date_naissance[2]."-".$array_date_naissance[1]."-".$array_date_naissance[0];

mysql_query("INSERT INTO Membre VALUES('" . mysql_escape_string($dateNaissance_mysql)."')"); //attention tu dois mettre les values dans l'ordre de tes champs de ta table

Répondre à Alain_42

2

P@t@ch0n, le 26 avr 2009 à 19:54:59

Avec un explode() simplement.

if( !empty($_POST['dateNaissance']) )
{
    if( preg_match('#^\d{2}/\d{2}/\d{4}$#', $_POST['dateNaissance']) )
    {
        $date = explode('/', $_POST['dateNaissance']);
        if( checkdate($date[1], $date[0], $date[2]) )
        {
            $sql = "INSERT INTO Membre VALUES('" . $date[2] . '-' . $date[1] . '-' . $date[0] . "')";
             mysql_query($sql); 
        }
        else
        {
            // Date invalide
        }
    }
    else
    {
        // Format invalide
    }
}
else
{
    // Champ vide
}
Tu peux encore affiner la chose en vérifiant que la date fournie est par exemple supérieure à 1900 et inférieure à celle (d'aujourd'hui moins 10ans).

Répondre à P@t@ch0n

3

 D_AmOn, le 26 avr 2009 à 20:35:07

Merci beaucoup vos codes marchent inpec !!

Répondre à D_AmOn