Mon code "Modifier" supprime les données au lieu de modifier

Fermé
imani_2 - 8 juil. 2013 à 11:01
 Utilisateur anonyme - 8 juil. 2013 à 17:26
Bonjour,
Lentement, j'ai pu achevé mon premier projet en php (il n'était pas trop vaste) et grace à vous, merci beaucoup. Alors, actuellement, je me lance pour le deuxième mais je suis bloqué quelque part et je comprends pas du tout que dois-je faire car après maintes tentatives, je me plante tjrs.
Au fait, je ne parviens à modifier les données de ma bdd, quandd j'essaie de le faire; au lieu de modifier ça supprime complétement les dites données et pourtant c'est bien le code que j'avais utilisé ds mon 1er projet !!!

Ici, c'est pour ma table Client.

Voici, le code en question :

<?php
//header("Location: listclient.php");
$user = "root";
$pass = "";
$db = "hotel";

mysql_connect("localhost","root","")or die("connection failed." .mysql_error());

mysql_select_db($db) or die ("select db failed." .mysql_error());


$id =$_REQUEST['IdClient'];

$result = mysql_query("SELECT * FROM client WHERE IdClient = '$id'");
$test = mysql_fetch_array($result);
if (!$result)
{
die("Error: Data not found..");
}

$nom= $test['nom'] ;
$prenom=$test['prenom'] ;
$etatcivil=$test['etatcivil'] ;
$nationalite=$test['nationalite'] ;
$adresse=$test['adresse'] ;
$telephone=$test['telephone'] ;
$occupation=$test['occupation'] ;
$sexe=$test['sexe'] ;

if(isset($_POST['save']))
{
$nom_save=$_POST['nom'] ;
$prenom_save=$_POST['prenom'] ;
$etatcivil_save=$_POST['etatcivil'] ;
$nationalite_save=$_POST['nationalite'] ;
$adresse_save=$_POST['adresse'] ;
$telephone_save=$_POST['telephone'] ;
$occupation_save=$_POST['occupation'] ;
$sexe_save=$_POST['sexe'] ;

mysql_query("UPDATE client SET nom ='$nom_save', prenom ='$prenom_save',
etatcivil='$etatcivil_save', nationalite='$nationalite_save', adresse='$adresse_save', telephone='$telephone_save',occupation='$occupation_save', sexe='$sexe_save' WHERE IdClient = '$id'")
or die(mysql_error());
echo "Saved!";

// header("Location: index.php");
}
mysql_close();
?>

Ai-je glissé une erreur quelque part ?

Ya-t-il quelqu'un pour m'aider SVP ?!!

Merci d'avance pour votre.
A voir également:

5 réponses

Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
8 juil. 2013 à 11:17
Bonjour,

Tout d'abord je ne vois pas l'interet de ce code :
$result = mysql_query("SELECT * FROM client WHERE IdClient = '$id'");
$test = mysql_fetch_array($result);
if (!$result)
{
die("Error: Data not found..");
}

$nom= $test['nom'] ;
$prenom=$test['prenom'] ;
$etatcivil=$test['etatcivil'] ;
$nationalite=$test['nationalite'] ;
$adresse=$test['adresse'] ;
$telephone=$test['telephone'] ;
$occupation=$test['occupation'] ;
$sexe=$test['sexe'] ; 


Ensuite d'après la requête SQL vous faites un UPDATE et non un DELETE donc les données ne sont pas supprimées.
qu'est-ce qui vous fait penser que les clients sont supprimés ?

Cordialement
0
Bien sur, la suppression s'observe dans ma base mysql !!!
Je précise bien : ce n'est pas les données de tous les clients qui sont supprimées mais c'est uniquement les données relatives à un seul client que je veux modifier effectivement.

Merci.
0
Utilisateur anonyme
8 juil. 2013 à 16:31
Bonjour

Je suppose qu'en fait, la ligne avec l'IdClient reste, mais que ses champs sont vidés.
C'est probablement parce que le formulaire est mal défini.
Peut-on voir le code du formulaire ?
0
Effectivement, la ligne avec l'IdClient reste !

Voici le code pour le formulaire :


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Modification de liste des clients</title>
</head>
<body>
<form method="post">
<table>
<tr>
<td>Nom:</td>
<td><input type="text" name="nom" value="<?php echo $nom ?>"/></td>
</tr>
<tr>
<td>Prenom</td>
<td><input type="text" name="prenom" value="<?php echo $prenom ?>"/></td>
</tr>
<tr>
<td>Etat Civil</td>
<td><input type="text" name="etatcivil" value="<?php echo $etatcivil?>"/></td>
</tr>
<tr>
<td>Nationalite</td>
<td><input type="text" name="nationalite" value="<?php echo $nationalite?>"/></td>
</tr>
<tr>
<td>Adresse</td>
<td><input type="text" name="adresse" value="<?php echo $adresse?>"/></td>
</tr>
<tr>
<td>Telephone</td>
<td><input type="text" name="telephone" value="<?php echo $telephone?>"/></td>
</tr>
<tr>
<td>Occupation</td>
<td><input type="text" name="occupation" value="<?php echo $occupation?>"/></td>
</tr>
<tr>
<td>sexe</td>
<td><input type="text" name="sexe" value="<?php echo $sexe?>"/></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Enregistrer" value="Enregistrer"/></td>
</table>
</body>
</html>
0

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

Posez votre question
Utilisateur anonyme
8 juil. 2013 à 17:26
Plusieurs choses bizarres, même si je ne vois pas en quoi elles expliquent ton problème :
- il manque un </form> à la fin du formulaire
- il n'y a aucun 'IdClient' ni aucun 'save' dans ton formulaire : d'où viennent le $_REQUEST['IdClient'] et le $_POST['save'] ?
Es-tu sûr de nous montrer le bon formulaire ?
Le formulaire et son traitement sont-ils dans le même fichier ?
0