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

Résolu/Fermé
imani_2 - 18 juil. 2013 à 16:04
 imani_2 - 20 juil. 2013 à 12:30
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.
A voir également:

13 réponses

Utilisateur anonyme
18 juil. 2013 à 16:17
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
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
18 juil. 2013 à 16:17
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
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 19/07/2013 à 14:06
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour Alain,

Je viens d'ajouter if($requete2), mais ça ne marche pas toujours !?!
0
Utilisateur anonyme
19 juil. 2013 à 18:46
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
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
20 juil. 2013 à 10:38
as tu modifié la fin de la requette comme ça

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

Bonjour.
0
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
20 juil. 2013 à 11:48
tu mets:

$id =$_GET['IdClient'];

alors que ton formulaire est en method POST

il faut:

$id =$_POST['IdClient'];
0
Utilisateur anonyme
20 juil. 2013 à 11:52
Ç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
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
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