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 :

date toujours à 00-00-0000 ... [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 90
    Par défaut date toujours à 00-00-0000 ...
    Bonjour,
    j'essaie d'afficher la date d'insertion de chacun des posts dans un forum, mais je ne parviens qu'à afficher 00-00-0000

    Ci-dessous mon code :

    Dans une première page je définis la variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date_insertion = date("Y-m-d");
    puis j'insère cette variable dans ma table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = 'INSERT INTO table VALUES("", " ", "'.addslashes($_POST['infos']).'", "'.$_GET['numero_du_produit'].'", "$date_insertion")';
    Dans une deuxième page je reformate cette date :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = 'SELECT DATE_FORMAT(date,"%d-%m-%Y") AS date FROM ....';
    Puis je l'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $donnees['date']; ?>
    Quelqu'un peut m'aider ?

    Merci d'avance !
    Mathieu

  2. #2
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 495
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 495
    Par défaut
    salut,
    comme ca vite fais je sais pas ou est l'erreur...
    mais je peux et conseiller d'aller vérifier par toi meme dans ta bdd que la date a bien été insérée dans ta colone..
    vérifis aussi le format de ta colone date.
    comme ca, tu sais déja si le probleme est avant ou après l'insertion de la date...
    après, fais un echo après ton $date_insertion = date("Y-m-d");
    pas a pas tu sauras a quel niveau ca va pas...
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  3. #3
    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
    Procédons par étape :
    1. De quel SGBD est-il question ? MySQL a priori ?
    2. De quel type est le champ en question ?
    3. L'insertion se déroule-t-elle comme prévue ?

    J'ajouterais qu'il est fortement recommandé de remplacer addslashes par la fonction spécifique d'échappement propre au SGBD (pour mysql il s'agit de mysql_real_escape_string par exemple).


    Julp.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 90
    Par défaut
    Il s'agit de Mysql en effet. Il s'agit d'un champ "date", et l'insertion semble se dérouler normalement.
    J'ai vérifié dans ma table : les dates apparaissent toutes ainsi : "0000-00-00"

  5. #5
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 495
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 495
    Par défaut
    avant ton insert into ...
    fais un echo après ton $date_insertion = date("Y-m-d");
    => ca te renvois la date comme tu veux ou pas ?
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  6. #6
    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
    Avec 0000-00-00, l'insertion est correcte ? Que donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql = "INSERT INTO table VALUES('', ' ', '" . mysql_real_escape_string($_POST['infos']) . "', '" . $_GET['numero_du_produit'] . "', CURDATE());";
    ?
    La fonction MySQL CURDATE() remplace la récupération de la date avec PHP.


    Julp.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 90
    Par défaut
    en effet Julp ça marche avec CURDATE().
    Merci beaucoup à tous les deux !!

  8. #8
    Membre éclairé

    Homme Profil pro
    Webmaster, Réalisateur Vidéo, Chef de projet Web documentaire
    Inscrit en
    Juillet 2006
    Messages
    407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster, Réalisateur Vidéo, Chef de projet Web documentaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 407
    Par défaut
    Salut

    je m'incruste juste pour une précsion j'avais le même problème en partie résolu, car j'aimerais aussi faire rentrer l'heure, avec curdate j'ai bien la date mais l'heure reste a zero. comment faire?

  9. #9
    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
    Les fonctions MySQL pour obtenir la date ou le temps courant :
    • champ de type DATE (format YYYY-MM-DD) CURDATE(), CURRENT_DATE(), CURRENT_DATE
    • champ de type DATETIME (format YYYY-MM-DD HH:MM:SS) NOW(), LOCALTIME, LOCALTIME(), LOCALTIMESTAMP, LOCALTIMESTAMP(), CURRENT_TIMESTAMP, CURRENT_TIMESTAMP(), SYSDATE()
    • champ de type TIME (format HH:MM:SS) CURTIME(), CURRENT_TIME() ou CURRENT_TIME
    • timestamp (pour une date exprimée en nombre de secondes écoulées depuis le 01/01/1970 00:00 GMT) UNIX_TIMESTAMP()


    Source : les fonctions MySQL liées aux dates et les différents types dates.

    @rvm31 : c'est donc la fonction NOW() (ou un alias) qu'il vous faut utiliser.


    Julp.

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

Discussions similaires

  1. PHP différence entre 2 dates toujours positives
    Par KLeMiX dans le forum Langage
    Réponses: 4
    Dernier message: 10/04/2013, 11h31
  2. [AC-2003] Date en 00/00/0000
    Par Ylmith dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 09/05/2012, 16h47
  3. toujours la date inversée
    Par Stéph utilisateur d'acces dans le forum Access
    Réponses: 10
    Dernier message: 10/09/2005, 09h29
  4. Affiche de la date 0000-00-00 par défaut !
    Par Zebulonn dans le forum Requêtes
    Réponses: 13
    Dernier message: 01/07/2005, 11h36
  5. probleme de date (toujours et encore des dates)
    Par Yannesco dans le forum SQL
    Réponses: 3
    Dernier message: 02/02/2004, 19h04

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