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

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 32
    Points : 25
    Points
    25
    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 éprouvé 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 : 43
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    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.

    ++
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 32
    Points : 25
    Points
    25
    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 éprouvé 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 : 43
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    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.

    ++
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 32
    Points : 25
    Points
    25
    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
    Expert éminent sénior

    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
    Points : 17 778
    Points
    17 778
    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).

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 32
    Points : 25
    Points
    25
    Par défaut
    Je vous remercie!
    Le probleme venait effectivement des underscores manquants.

    Merci pour vos reponses!

    Aquafafa

+ 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