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 :

je n'arrive pas à modifier mes données [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut je n'arrive pas à modifier mes données
    Bonjour, voila j'ai une page (rapport.php) sur laquelle j'ai un formulaire et en dessous un tableau qui liste les données saisie a l'aide de mon formulaire, a coté de chaque donnée de ce tableau je récupère l'id de chaque entrée et ainsi dans un autre formulaire (modifier_rapport.php) j'effectue la modification et renvoi sur (rapport.php) pour mettre à jour la table,

    le problème est que j'arrive à faire l'insertion mais pas la modification :

    voici mon code :

    début de ma page (rapport.php) je déclare les $variable $[POST] si $[POST] = insertion alors je fai un INSERT INTO sinon un update
    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
    if (isset($_POST['gestionnaire']) AND isset($_POST['equipe']) AND isset($_POST['date']) AND isset($_POST['poste']) AND isset($_POST['semaine']) AND isset($_POST['montage'])AND isset($_POST['profil']) AND isset($_POST['cde_acier']) AND isset($_POST['casier']) AND isset($_POST['nombre']) AND isset($_POST['wagon'])AND isset($_POST['coullee']) AND isset($_POST['commande'])){
    //if(($_POST['gestionnaire'] == "") || ($_POST['equipe'] == "") || ($_POST['date'] == "") || ($_POST['poste'] == "") || ($_POST['semaine'] == "") || ($_POST['montage'] == "") || ($_POST['profil'] == "") || ($_POST['cde_acier'] == "") || ($_POST['casier'] == "") || ($_POST['nombre'] == "") || ($_POST['wagon'] == "") || ($_POST['coullee'] == "") || ($_POST['commande'] == "")){ 
    	//header("Location:rapport.php?erreur=empty"); // message en cas de champ non remplis
     
    		// passe les variables $POST en variables
    		$gestionnaire = $_POST['gestionnaire'];
    		$equipe = $_POST['equipe'];
    		$date = $_POST['date'];
    		$poste = $_POST['poste'];
    		$semaine = $_POST['semaine'];
    		$montage = $_POST['montage'];
    		$profil = $_POST['profil'];
    		$cde_acier = $_POST['cde_acier'];
    		$casier = $_POST['casier'];
    		$nombre = $_POST['nombre'];
    		$wagon = $_POST['wagon'];
    		$coullee = $_POST['coullee'];
    		$commande = $_POST['commande'];
     
    		if ($_POST['action'] == "insertion"){
    		// insert into dans raport
    		$add_user = sprintf("INSERT INTO rapport (gestionnaire, equipe, date, poste, semaine, montage, profil, cde_acier, casier, nombre, wagon, coullee, commande) VALUES ('$gestionnaire', '$equipe', '$date', '$poste', '$semaine', '$montage', '$profil', '$cde_acier', '$casier', '$nombre', '$wagon', '$coullee', '$commande')");
      		mysql_select_db($database_dbprotect, $dbprotect);
      		$result = mysql_query($add_user, $dbprotect) or die(mysql_error());
    		header("Location:rapport.php?add=ok"); // message comme quoi l'enregistrement à été fait
    }
    else {
    	// on fait la requête pour la modification
    		mysql_select_db($database_dbprotect, $dbprotect);
    		$modif_users = "UPDATE rapport SET gestionnaire= '$gestionnaire', equipe= '$equipe', date= '$date', poste= '$poste', semaine= '$semaine', montage= '$montage', profil= '$profil', cde_acier= '$cde_acier', casier = '$casier', nombre= '$nombre', wagon= '$wagon', coullee = '$coullee', commande= '$commande', WHERE id = '" . $_POST['id'] . "'"; 
    		$modifier = mysql_query($modif_users, $dbprotect) or die(mysql_error());
    		header("Location:rapport.php?modif=ok"); // message comme quoi l'enregistrement à été fait
    	}
    }
    mon formulaire en bas de la page rapport contient ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input name="action" type="hidden" id="action" value="insertion"/>
    afin de faire comprendre au debut de la page qu'il s'agit d'une insertion.

    un peu plus en bas de ma page je récupère l'id de l'entrée pour récupérer les variable et les afficher dans ma page (modifier_rapport.php)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><center><?php echo '<a href="modifier_rapport.php?idrapport=' . $donnees['id'] . '">'; ?><img src="images/edit.png" alt="Modifier"  border="0"></a></center></td>
    enfin dans (modifier_rapport) j'affiche les données correspandant à l'id dans le form :
    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
     <?php
      $modif_rapport = sprintf('SELECT * FROM rapport WHERE id=\'' . $_GET['idrapport'] . '\'');
      mysql_select_db($database_dbprotect, $dbprotect);
      $sql = mysql_query($modif_rapport, $dbprotect) or die(mysql_error());
     
      //affichage des données:
      if( $result = mysql_fetch_object( $sql ) )
      {
      ?>
     
      <form name="insertion" action="rapport.php" method="POST">
      <input type="hidden" name="id" value="<?php echo($id) ;?>">
      <table border="0" align="center" cellspacing="2" cellpadding="2">
        <tr align="center">
          <td>gestionnaire</td>
          <td><input type="text" name="gestionnaire" value="<?php echo($result->gestionnaire) ;?>"></td>
        </tr>
        <tr align="center">
          <td>equipe</td>
          <td><input type="text" name="equipe" value="<?php echo($result->equipe) ;?>"></td>
        </tr>
        <tr align="center">
          <td>date</td>
          <td><input type="text" name="date" value="<?php echo($result->date) ;?>"></td>
        </tr>
        <tr align="center">
          <td>poste</td>
         <td><input type="text" name="poste" value="<?php echo($result->poste) ;?>"></td>
        </tr>
        <tr align="center">
          <td>semaine</td>
          <td><input type="text" name="semaine" value="<?php echo($result->semaine) ;?>"></td>
        </tr>
        <tr align="center">
          <td>montage</td>
          <td><input type="text" name="montage" value="<?php echo($result->montage) ;?>"></td>
        </tr>
        <tr align="center">
          <td>profil</td>
          <td><input type="text" name="profil" value="<?php echo($result->profil) ;?>"></td>
        </tr>
        <tr align="center">
          <td>cde_acier</td>
          <td><input type="text" name="cde_acier" value="<?php echo($result->cde_acier) ;?>"></td>
        </tr>
        <tr align="center">
          <td>casier</td>
          <td><input type="text" name="casier" value="<?php echo($result->casier) ;?>"></td>
        </tr>
        <tr align="center">
          <td>nombre</td>
          <td><input type="text" name="nombre" value="<?php echo($result->nombre) ;?>"></td>
        </tr>
        <tr align="center">
          <td>wagon</td>
          <td><input type="text" name="wagon" value="<?php echo($result->wagon) ;?>"></td>
        </tr>
        <tr align="center">
          <td>coullee</td>
          <td><input type="text" name="coullee" value="<?php echo($result->coullee) ;?>"></td>
        </tr>
        <tr align="center">
          <td>commande</td>
          <td><input type="text" name="commande" value="<?php echo($result->commande) ;?>"></td>
     
            <tr align="center">
          <td colspan="2"><input type="submit" value="modifier"></td>
        </tr>
      </table>
    </form>
      <?php
      }//fin if 
      ?>
    je pensais avoir tout bon mais en faite non pas de mis a jour, et lorsque je modfie un champ et je valide j'obtiens parfois le message : "Notice: Undefined index: action in C:\Program Files\EasyPHP 3.0\www\pcfour\rapport.php on line 63
    Erreur de syntaxe près de 'WHERE id = '
    Notice: Undefined variable: id in C:\\Program Fil' à la ligne 1"

    voila ce que j'ai à la ligne 63 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		if ($_POST['action'] == "insertion"){
    merci pour votre aide parce que je ne vois d'où viens le problème

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Dans ton page modifier_rapport tu utilises $id alors que tu ne l'as pas défini ; ca serait plutot $_GET['id'].

    Pour l'erreur undefined, étant donné que le formulaire de modification n'envoie pas d'action, vérifie d'abord si $_POST['action'] existe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_POST['action']) && $_POST['action'] == "insertion"){

  3. #3
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    oK, j'ai fait les modifications que tu ma indiqué : j'ai donc bien mes donnée retransmisse dans mon form de (modifier_rapport.php) mais une fois que je valide voila l'erreur : Notice: Undefined index: id_rapport in C:\Program Files\EasyPHP 3.0\www\pcfour\rapport.php on line 72
    Erreur de syntaxe près de 'WHERE id = '
    Notice: Undefined variable: id in C:\\Program Fil' à la ligne 1


    voici la ligne 72 de rapport.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		$_POST['id_rapport'] = addslashes($_POST['id_rapport']);
    et pour ma requete avec WHERE id je la trouve juste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $modif_users = "UPDATE rapport SET gestionnaire= '$gestionnaire', equipe= '$equipe', date= '$date', poste= '$poste', semaine= '$semaine', montage= '$montage', profil= '$profil', cde_acier= '$cde_acier', casier = '$casier', nombre= '$nombre', wagon= '$wagon', coullee = '$coullee', commande= '$commande', WHERE id = '" . $_POST['id'] . "'";
    car le formulaire (modifier_rapport.php) comporte bien la valeur id qui est l'id de l'entrée dans la table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="id" value="<?php echo($id) ;?>">
    donc je ne vois pas le probléme !!!

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu veux id ou id_rapport ?

  5. #5
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    et bien dans ma table chaque entrée porte un id, mais j'ai mis id_rapport pour stocker la variable id !!!

  6. #6
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Dans ce que tu nous a montré, il y a idrapport mais pas id_rapport.

  7. #7
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    oui autant pour moi, maintenant avec id partout il me met :

    Erreur de syntaxe près de 'WHERE id = '889'' à la ligne 1

    Pourtant je voit mes données dans modifier_rapport.php et c'est lorsque je valide ma modification !!!
    je n'y comprend plus rien ! en tous cas 889 est bien l'id correspondant à l'entrée que je souhaite modifier

  8. #8
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as une virgule avant ton WHERE.

  9. #9
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    Formidable c'été merci, mais pourquoi cette petite virgule a foutu autant de bordel ????

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/01/2013, 15h01
  2. Réponses: 0
    Dernier message: 04/05/2008, 18h07
  3. Réponses: 2
    Dernier message: 26/02/2007, 15h06
  4. [C#] Je n'arrive pas à remonter les données
    Par Le Basque dans le forum Windows Forms
    Réponses: 14
    Dernier message: 17/01/2005, 19h40

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