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 :

Gérer le format de date MySQL [Fait] [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 41
    Par défaut Gérer le format de date MySQL
    Bonsoir,
    je débute en php et Mysql et je coince sur la date.
    je vous explique mon objectif :

    A partir d'un formulaire, je demande à l'utilisateur de saisir manuellement une date au format dd/mm/yyyy alors que mysql attend une date au format yyyy/mm/dddd, donc ça coince. pas de problème si je saisie la date au format mysql.


    comment dois-je proceder ?
    Merci pour votre aide

  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
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 41
    Par défaut
    Merci pour le lien,

    mais je n'y arrive pas, voici mon code, le problème doit se poser à la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $content_date = date("d/m/Y",strtotime($content_date) );

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    <?php
    /* Fichier: Admin.php
    * Description: Réalise les tâches de manipulation de données,
    * comme la création, la modification ou la suppression
    * de contenu
    */
    session_start();
    include_once("functions_main.inc");
     
    foreach ($_POST as $name => $value) #9
    $$name = $value;
    foreach ($_GET as $name => $value) #11
    $$name = $value;
     
    if (!isset($action)) #14
    header("Location: CompanyHome.php");
     
     
     
    if (!isset($create_date)) #17 
    $create_date = date("Y-m-d", time());
    else
    $create_date = time($create_date);
     
    if (!isset($content_date))
    $content_date = date("Y-m-d", time());
     
    else
     
     
    $content_date = date("d/m/Y",strtotime($content_date) );
     
    $last_upd_date = date("Y-m-d", time());
     
     
    if (!isset($created_by))
    $created_by = $_SESSION["user_name"];
    $last_upd_by = $_SESSION["user_name"];
    $cxn = Connect_to_db("Vars.inc");
    $titre = mysqli_real_escape_string($cxn,$titre);
    $description = mysqli_real_escape_string($cxn,$description);
     
    switch ($action) #35
    {
    case "delete": #37
    $sql = "DELETE FROM Contenu
    WHERE content_id=$content_id";
     
    mysqli_query($cxn, $sql);
    $sql = "DELETE FROM Content_Download
    WHERE content_id=$content_id";
    mysqli_query($cxn, $sql);
     
    break;
     
     
    case "Enregistrer les changements": #48
     
        $message_2 = "";
     
    if ($content_date <= 0)
    $message_2 = "<li>Date de contenu invalide";
     
    if ($titre == "")
    $message_2 .= "<li>Le titre ne peut être vierge";
     
    if ($message_2)
    $message_2 = "Merci de corriger ces erreurs : $message_2";
     
    if ($message_2 != "")
    {
    include("CompanyHome.php");
    exit();
    }
    if ($content_id) #65
    {
    $sql = "UPDATE Contenu
    SET titre = '$titre',
    description = '$description',
    content_date = '$content_date',
    last_upd_date = '$last_upd_date',
    last_upd_by = '$last_upd_by'
    WHERE content_id = $content_id";
    } #75
    else #75
    {
         $sql = "INSERT INTO contenu SET content_date = STR_TO_DATE('$content_date', '%d/%m/%Y'),
    dept_id = $dept_id ,sous_type_one = $sous_type_one, content_type =$sous_type_two,
    titre = '$titre', description = '$description',
    create_date = '$create_date', created_by ='$created_by',
    last_upd_date ='$last_upd_date', last_upd_by ='$last_upd_by'";
     
     
     
     
         }
    Connect_to_db("Vars.inc"); #87
     
    mysqli_query($cxn, $sql);
     
     
    if (!$content_id)
    $content_id = mysqli_insert_id($cxn); #92
     
    foreach ($_FILES as $file) #94
    {
         $file_name = $file["name"];
    if ($file["size"] <= 0)
    continue;
     
    $sql = "INSERT INTO Contenu_Download (content_id, file_name)
    VALUES ($content_id, '$file_name')";
    mysqli_query($cxn, $sql);
    $file_id = mysqli_insert_id($cxn); #103
    $dest_dir = "files".DIRECTORY_SEPARATOR.$file_id;
    $dest_file = $dest_dir.DIRECTORY_SEPARATOR.$file_name;
     
    if(!file_exists($dest_dir)) #107
    {
    if(!mkdir($dest_dir, 0700, TRUE))
    die ("Archivage du document impossible dans $dest_dir");
    }
     
    if (!file_exists($dest_file)) #113
    {
    if (!move_uploaded_file($file["tmp_name"], $dest_file))
    die ("Archivage du document impossible dans $dest_dir");
    }
    }
     
    break;
    case "DeleteDownload": #121
    $sql = "SELECT distinct c.dept_id, c.content_type as sous_type_two,b.content_type as sous_type_one
    FROM contenu c, Contenu_Download e, sous_type_two b
                WHERE e.download_id=$download_id
    AND c.content_id = e.content_id
    and c.sous_type_one = b.content_type";
     
    $results = mysqli_query($cxn, $sql);
     
    $row = mysqli_fetch_assoc($results);
    $dept_id = $row["dept_id"];
        $sous_type_one = $row["sous_type_one"];
    $sous_type_two = $row["sous_type_two"];
    #132
    $sql = "DELETE FROM Contenu_Download
    WHERE download_id=$download_id";
    mysqli_query($cxn, $sql);
     
    break;
    case "Annuler":
    break;
    }
     
    $query_str = "browse_level=content2" #142
    . "&dept_id=$dept_id&sous_type_one=$sous_type_one&sous_type_two=$sous_type_two";
    header("Location: CompanyHome.php?$query_str");
     
    ?>

  4. #4
    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
    Il faudrait que tu te decides sur un format parce que dans ton code tu passes ton temps a faire et défaire des conversions.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (!isset($create_date)) #17
    $create_date = date("Y-m-d", time());
    else
    $create_date = time($create_date);
    la fonction time() ne prends pas de paramètre et elle renvoit un timestamp.
    donc tu n'as pas le meme format de sortie dans les deux conditions.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (!isset($content_date))
    $content_date = date("Y-m-d", time());
    else
    $content_date = date("d/m/Y",strtotime($content_date) );
    d'ou est censé venir $content_date ? il n'est pas défini avant.
    qu'est-il censé contenir à l'arrivée ?
    qu'est-il censé contenir a la fin ? parce que tu ne sors pas le meme format dans les deux cas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET content_date = STR_TO_DATE('$content_date', '%d/%m/%Y')
    Pourquoi avoir formaté precedemment ton $content_date si c'est pour demander a mysql de le retravailer encore ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 41
    Par défaut
    pour tout vous dire,
    c'est du code qui provient du livre "php et Mysql", j'ai constaté qu'il était truffé d'erreur.

    j'ai corrigé pas mal d'erreurs mais il en reste encore.

    j'ai trouvé une solution : voilà a ce que j'ai fais :

    $content_date=@list($jour,$mois,$annee) = explode('/',$content_date);
    $content_date = date("d/m/Y",mktime(0,0,0,$mois,$jour,$annee) );

    merci.

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

Discussions similaires

  1. Choix du format de date timestamp Mysql ou timestamp Unix
    Par audreyc dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/04/2009, 07h20
  2. Changer format de date - Mysql ignore le caractere \
    Par Peter K. dans le forum Requêtes
    Réponses: 1
    Dernier message: 01/01/2008, 21h35
  3. [Dates] Format de date MySQL vers français
    Par tcompagnon dans le forum Langage
    Réponses: 4
    Dernier message: 17/07/2007, 13h02
  4. Format français date=>date MySQL
    Par john.dbc dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 25/08/2006, 13h28
  5. [SGBD] Convertir une donnée Date MYSQL en format Francais
    Par hillairet dans le forum Débuter
    Réponses: 4
    Dernier message: 28/09/2005, 15h06

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