Le code modifier ne fonctionne pas (ne donne pas le resultat) !

Résolu
imani_2 -  
 imani_2 -
Bonjour,

Quand je veux modifier une donnée via un formulaire (php), bizarrement le formulaire apparait complètement vide. Donc, sans aucune donnée dessus. Et là vous comprenez bien que c'est impossible de faire la modification ! Quelqu'un m'a soufflé en passant que c'est plausiblement le problème de requêtes HTTP POST, c'est pourquoi la requête Mysql ne retourne rien comme résultat : c'est ce que je ne comprends pas encore bien. Y a-t-il quelqu'un pour m'épauler SVP !

Voici le code pour la modification :

<?php

//---------------------------- connexion avec la base de données

require_once("connectionMYSQL.inc.php");

//----------------------------- requête pour la modification
if(isset($_POST['modif'])){
$requete = "UPDATE client SET nom = '".$_POST['nom']."',prenom = '".$_POST['prenom']."',etatcivil = '".$_POST['etatcivil']."',nationalite= '".$_POST['nationalite']."',adresse = '".$_POST['adresse']."',telephone = '".$_POST['telephone']."',occupation = '".$_POST['occupation']."',sexe = '".$_POST['sexe']."' WHERE IdClient ='".$_POST['IdClient']."' ";
$resultat = mysql_query($requete);
}
//---------------------requête de recherche

$requete2 = "SELECT * FROM client WHERE IdClient='".$_POST['IdClient']."'";
$resultat2 = mysql_query($requete2);
$produit = mysql_fetch_array($resultat2);

?>

Et le formulaire est le suivant :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Modification des clients</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href= "style.css" type = "text/css" rel = "stylesheet"/>
</head>
<body>
<form align= "center" id="monform" name = "form1" method = "post" action="updateClient.php" >

<table>
<tr>
<td>IdClient:</td>
<td><input type="hidden" name="IdClient" value="<?php echo $client['IdClient']; ?>"></td>
</tr>

<tr>
<td>Nom:</td>
<td><input type="text" name="nom" value="<?php echo $client['nom']; ?>"></td>
</tr>
<tr>
<td>Prenom:</td>
<td><input type="text" name="prenom" value="<?php echo $client['prenom']; ?>"></td>
</tr>
<tr>
<td>Etat Civil:</td>
<td><input type="text" name="etatcivil" value="<?php echo $client['etatcivil']; ?>"></td>
</tr>
<tr>
<td>Nationalite:</td>
<td><input type="text" name="nationalite" value="<?php echo $client['nationalite']; ?>"></td>
</tr>
<tr>
<td>Adresse:</td>
<td><input type="text" name="adresse" value="<?php echo $client['adresse']; ?>"></td>
</tr>
<tr>
<td>Telephone:</td>
<td><input type="text" name="telephone" value="<?php echo $client['telephone']; ?>"></td>
</tr>
<tr>
<td>Occupation:</td>
<td><input type="text" name="occupation" value="<?php echo $client['occupation']; ?>"></td>
</tr>
<tr>
<td>Sexe:</td>
<td><input type="text" name="sexe" value="<?php echo $client['sexe']; ?>"></td>
</tr>
<tr>
<td><input type="submit" name="modifier" value="Modifier"></td>
</tr>
</table>
</form>
<?php include("footer.php")?>
</body>
</html>

Aurai-je glissé une erreur quelque part ?
Merci d'avance pour votre aide.

13 réponses

  1. Utilisateur anonyme
     
    Bonjour

    A priori, deux erreurs :

    Tu remplis ton formulaire avec une variable $client, mais d'où vient-elle ? Ce ne serait pas plutôt $produit ?

    D'où vient le $_POST['IdClient'] dans ta requête ? Du formulaire. Mais d'où vient le idClient du formulaire ? De la requête. J'espère que tu as un autre formulaire qui initialise $_POST['IdClient'] lors du premier appel du formulaire, sinon d'où vient l'IDClient ?
    0
  2. Thorak83 Messages postés 1140 Statut Membre 156
     
    Bonjour,

    Oui dans votre formulaire comment allez vous chercher les informations clients ?
    il ne connait pas $client['nom']
    il faut faire une requête sql au début de votre formulaire (SELECT ... FROM Client .... WHERE idclient = ..."

    Cordialement
    0
  3. imani_2
     
    Bonjour Le Père,

    J'ai bien constaté que j'ai pas bien consulté mon code avant de le poster (pour cela, je m'excuse énormément, car je vous ai un peu frustré, c'est ce que je pense ! ). Pardon encore une fois, je me sens un peu bete !

    Ben, THORAK a également répondu à ce post, et m'a suggéré pas mal de choses que je vois actuellement ont l'air de marcher correctement. Mais, aussi vous m'avez trop aidé, bien sur.

    Donc, actuellement avec le code suivant, en cliquant sur une donnée pour la modifier, celle-ci apparait sur formulaire finalement mais le problème qui est alors présent, cette donnée n'est pas modifiée du tout !

    Voici alors les modifications de code modifier que j'ai pu fait après vos directives (réponses) :

    .................................................................................................................................

    <?php
    //--------------------------------connexion avec la base de donnees

    require_once("connectionMYSQL.inc.php");

    //------------------------initialisation de l'Id

    $id =$_REQUEST['IdClient'];

    //---------------------requete de recherche

    $requete= "SELECT * FROM client WHERE IdClient='$id'";
    $resultat = mysql_query($requete);
    $client = mysql_fetch_array($resultat);

    //----------------------------- requete pour la modification
    if(isset($_POST['modif'])){
    $requete2 = ("UPDATE client SET nom = '".$_POST['nom']."',prenom = '".$_POST['prenom']."',etatcivil = '".$_POST['etatcivil']."',nationalite= '".$_POST['nationalite']."',adresse = '".$_POST['adresse']."',telephone = '".$_POST['telephone']."'
    ,occupation = '".$_POST['occupation']."',sexe = '".$_POST['sexe']."' WHERE IdClient = $id'") or die (mysql_error());
    echo "la modification a reussi avec succes!";
    }
    mysql_close();

    ?>
    ...............................................................................................................................

    Je suis sur et certain qu'il y a encore quelque chose que j'ai omis dans ce code afin que je puisse faire correctement la modification. Mais je crois bien que je ne suis pas loin de la solution.

    Merci déjà pour ce grand pas que je viennes de réaliser grâce à votre !
    Et là, j'attends impatiemment votre réponse s'il vous plait pour que je sorte de ce grand impasse !

    Bonne journée.
    0
  4. Alain_42 Messages postés 5413 Statut Membre 904
     
    salut, essayes en modifiant ainsi ta requette et en conditionnant le message de réussite à un test de réussite de la requette.

    //----------------------------- requete pour la modification
    if(isset($_POST['modif'])){
    	$requete2 = ("UPDATE client SET nom = '".$_POST['nom']."',prenom = '".$_POST['prenom']."',etatcivil = '".$_POST['etatcivil']."',nationalite= '".$_POST['nationalite']."',adresse = '".$_POST['adresse']."',telephone = '".$_POST['telephone']."'
    	,occupation = '".$_POST['occupation']."',sexe = '".$_POST['sexe']."' WHERE IdClient = '". $id."'") or die (mysql_error());
    	if($requette2){
    		echo "la modification a reussi avec succes!";
    	}
    }
    mysql_close();
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. imani_2
     
    Bonjour Alain,

    Je viens d'ajouter if($requete2), mais ça ne marche pas toujours !?!
    0
  7. Utilisateur anonyme
     
    Bonjour

    Je n'ai pas vérifié si ta requête est correcte, mais une chose est sûre : tu ne l'appelles pas ! Où est le mysql_query ?
    $requete2 = mysql_query("UPDATE client SET nom...
    0
  8. imani_2
     
    Bonjour,

    Ouf !!!
    Même avec $requete2 = mysql_query
    ("UPDATE client SET nom... 
    ça ne marche pas toujours.

    A moins que je l'ai placé dans un mauvais endroit :

    $id =$_GET['IdClient'];


    //---------------------requete de recherche

    $requete= "SELECT * FROM client WHERE IdClient='$id'";
    $resultat = mysql_query($requete);
    $client = mysql_fetch_array($resultat);


    //----------------------------- requete pour la modification

    if(isset($_POST['modif'])){
    $requete2 = mysql_query("UPDATE client SET nom....
    


    Que peux-je encore faire SVP ? De toutes les façons, je pense que je ne suis plus loin de solution.

    Merci encore une fois.
    0
  9. Alain_42 Messages postés 5413 Statut Membre 904
     
    as tu modifié la fin de la requette comme ça

    WHERE IdClient = '". $id."'")
    0
  10. imani_2
     
    Effectivement, je l'ai fait !!

    Bonjour.
    0
  11. Utilisateur anonyme
     
    Pour l'instant, arrêtons de nous polariser sur la requête UPDATE puisque ton formulaire est vide, c'est que tu as déjà un problème avec le SELECT.
    As-tu vérifié la valeur de $id avec un echo juste avant l'appel à la requête SELECT ?
    0
  12. Alain_42 Messages postés 5413 Statut Membre 904
     
    tu mets:

    $id =$_GET['IdClient'];

    alors que ton formulaire est en method POST

    il faut:

    $id =$_POST['IdClient'];
    0
    1. Utilisateur anonyme
       
      Ça ne marche pas non plus, puisque le idClient du formulaire a été obtenu à parrtir de la requête, comme je l'ai déjà fait remarquer. Il faut bien que lors de la première ouverture du formulaire, son idClient vienne d'ailleurs, mais je n'ai pas eu de réponse à ce sujet.
      0
  13. imani_2
     
    Ouaauuh !!!

    ça marche correctement à présent !!!

    Grand grand grand merci pour votre aide !!!

    Je pense qu'aujourd'hui je vais passer une bonne nuit car ma tête est bien refroidie !!

    Bonne journée. A plus !!!
    0
  14. imani_2
     
    Ouaauuh !!!

    ça marche correctement à présent !!!

    Grand grand grand merci pour votre aide !!!

    Je pense qu'aujourd'hui je vais passer une bonne nuit car ma tête est bien refroidie !!

    Bonne journée. A plus !!!
    0