Inserer une date future dans la base donnee.

Résolu
Bonjour,

Je suis entrain de travailler sur un site dynamique. J'ai essaye l'insertion d'une date future dans la base de donnée. Or ça ne pas marcher, on m'affiche 0000-00-00 dans ce champs qui est censé contenir cette date.
Sachant que j'ai respecté la même forme (Y-m-d) pour la variable insérée, et que si j'affiche la commande pour trouver la date future, ca me donne la date.
Voila le script que j'ai code pour ca:
$query="UPDATE 'TableT' set 'DateT'=".date('Y-m-d', strtotime("+6 month"))." where 'ID'=".$_GET['ID'];
$Result=mysql_query($query);


Merci d'avance

9 réponses

  1. J'avais écrit : Tu as bien remis (ou retiré...) des accents graves à la place des apostrophes autour des noms de table et de champs
    Apparemment, tu n'en avais pas tenu compte...

    Laissons tomber les accents graves autour des noms de champs et de table : graves
    $query="UPDATE TableT set DateT='".date('Y-m-d', strtotime("+6 month"))."' where ID=".$_GET['ID'];

    ou sans accents et sans fonction PHP
    $query="UPDATE TableT set DateT= DATE_ADD( NOW( ) , INTERVAL 6 MONTH ) where ID=".$_GET['ID'];
    1. Bonjour

      La syntaxe "+6 month" est parfaitement correcte.
      Le problème, c'est qu'il faut mettre la date entre apostrophes dans la requête :
      $query="UPDATE 'TableT' set 'DateT'='".date('Y-m-d', strtotime("+6 month"))."' where 'ID'=".$_GET['ID'];
      1. Tu as bien remis (ou retiré...) des accents graves à la place des apostrophes autour des noms de table et de champs ? Car ce site a la mauvaise manie de transformer certains caractères...

        Sinon, recette pour analyser les problèmes avec mysql :
        $Result=mysql_query($query) or die(mysql_error());

        D'autre part, pour ajouter 6 mois à la date courante, pas besoin de fonction php, ça peut se faire directement en SQL :

        $query="UPDATE 'TableT' set 'DateT'= DATE_ADD( NOW( ) , INTERVAL 6 MONTH ) where 'ID'=".$_GET['ID'];
        1. oui j'ai suivi ce que vous avez dit a la lettre.
          le or die (mysql_error()) m'informe que je dois revoir la syntaxe et si elle est adéquate avec la version.
          Sinon la fonction sql n'a pas marche a son tour.
          1. or die (mysql_error()) m'informe que je dois revoir la syntaxe et si elle est adéquate avec la version.
            Donne le message d'erreur complet, on verra l'erreur.
            1. Le voila
              You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''TableT' set 'DateT'='2012-11-29' where 'ID'=4' at line 1
              1. Merci beaucoup.
                Je ne sais pas quoi te dire, apparemment les deux fonctionnent a merveille.
                Merci encore une fois, t'es un ange.
                1. De rien :)