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 :

Probleme d'Update date qui reinitialise la date! [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
    Avril 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 32
    Par défaut Probleme d'Update date qui reinitialise la date!
    Bonjour,
    je fais un update sur une table et tous les champs se mettent a jour sauf les dates qui se reinitialisent à 0000-00-00.
    Savez vous d'ou peut venir le probleme??

    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
    <?php require_once('Connections/bibliodec.php'); ?>
    <?php
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
    {
      $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
     
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;    
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      }
      return $theValue;
    }
     
    $editFormAction = $_SERVER['PHP_SELF'];
    if (isset($_SERVER['QUERY_STRING'])) {
      $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
    }
     
    if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
      $updateSQL = sprintf("UPDATE adherent SET nom_adherent=%s, prenom_adherent=%s, date_naissance=%s, adresse=%s, code_postal=%s, localite=%s, date_renouvellement=%s WHERE num_adherent=%s",
                           GetSQLValueString($_POST['Nom'], "text"),
                           GetSQLValueString($_POST['Prenom'], "text"),
                           GetSQLValueString($_POST['Date de naissance'], "date"),
                           GetSQLValueString($_POST['Adresse'], "text"),
                           GetSQLValueString($_POST['CP'], "int"),
                           GetSQLValueString($_POST['Localite'], "text"),
                           GetSQLValueString($_POST['Date de renouvellement'], "date"),
                           GetSQLValueString($_POST['Num_adherent'], "text"));
     
      mysql_select_db($database_bibliodec, $bibliodec);
      $Result1 = mysql_query($updateSQL, $bibliodec) or die(mysql_error());
     
      $updateGoTo = "connection.php";
      if (isset($_SERVER['QUERY_STRING'])) {
        $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
        $updateGoTo .= $_SERVER['QUERY_STRING'];
      }
      header(sprintf("Location: %s", $updateGoTo));
    }
    Merci par avance
    Aquafafa

  2. #2
    Membre émérite Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Par défaut
    bonjour,

    Pour que l'UPDATE se fasse, il faut que la date que tu envoi à la base soit sous la forme 2007-11-12. Sinon, elle risque de faire la gueule.

    ++

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 32
    Par défaut
    C'est bien ce que j'ai fait, mais ca ne marche pas.

    ce qui est bizarre aussi, c'est que si je ne touche pas la date qui est par exemple:
    1982-02-10, lorsque je valide mon formulaire (pour l'update) , elle se retrouve à 0000-00-00 alors que je ne l'ai pas touché.
    Par contre si j'update l'adresse ou le nom y a aucun souci.
    Sur ma base mysql la date est bien declaré en date donc je ne vois pas. c un mystère!

    Qui peut m'aider?

    Merci

  4. #4
    Membre émérite Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Par défaut
    Re,

    Fais un echo de ta requête voir ce qu'elle envoie réellement à la base:

    ex:

    Juste après sa déclaration.

    ++

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 32
    Par défaut
    Peux-tu m'indiquer (dans le code que j'ai marqué dans mon premier post) où je dois placer le ECHO car j'ai essayé un peu de partout et ça affiche rien à part mon formulaire.
    Merci

  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
    Pour commencer il y a un problème dans les noms de vos champs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $_POST['Date de renouvellement']
    $_POST['Date de naissance']
    puisqu'ils contiennent des espaces

    D'après de précédents essais, il me semble que PHP remplace ces caractères, dans les variables superglobales ($_POST ici), par des underscores (_). Vous pouvez toujours essayé mais il serait plus judicieux de revoir les noms de vos champs à l'avenir (pour des raisons de cohérence notamment).

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

Discussions similaires

  1. [XL-2010] Probleme de date qui se convertit toute seule
    Par sebing dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/12/2013, 10h10
  2. [VxiR2] Date qui précède la date max
    Par JuniorBI dans le forum Designer
    Réponses: 9
    Dernier message: 19/06/2012, 16h11
  3. [WDM14] Probleme Requete Update et format Date
    Par blooddevor dans le forum Windev Mobile
    Réponses: 8
    Dernier message: 07/07/2011, 09h42
  4. Probleme avec une class qui traite la date
    Par tarikmahf dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 10/11/2008, 22h12
  5. Réponses: 2
    Dernier message: 21/03/2007, 16h06

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