Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1873 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  mon code "modifier" en php supprime les données au lieu de modifier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

mon code "modifier" en php supprime les données au lieu de modifier

n°2196740
imani_2
Posté le 08-07-2013 à 12:07:59  profilanswer
 

Bonjour,
 
je me plante sur le code "modifier" dans PHP. Au fait, au lieu de modifier les données se trouvant dans ma base de données bizarrement il les supprimer complètement, je ne sais pas si j'ai glissé une erreur quelque part ! Je ne comprends du moins pourquoi ça marche ainsi  :pfff:  
 
Ici, c'est 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();
?>
 
Y a -t-il quelqu'un pour m'aider Svp ?!!
 
Merci d'avance pour votre aide!

mood
Publicité
Posté le 08-07-2013 à 12:07:59  profilanswer
 

n°2196741
sltpaulo
Posté le 08-07-2013 à 12:13:53  profilanswer
 

Regarde ce que contient tes variables

n°2196742
Volkhen
Posté le 08-07-2013 à 12:19:08  profilanswer
 

Citation :

mysql_connect


Pourquoi ?
Nous sommes en 2013, utiliser PDO pourrait être moins moche.
 

Citation :

$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'" )


http://php.net/manual/fr/pdo.prepared-statements.php parce que là, vraiment, il faut arrêter les conneries.
 
Sinon en ce qui concerne la suppression, j'imagine que IdClient est un entier : avez vous essayé avec

Citation :

WHERE IdClient = $id

au lieu de

Citation :

WHERE IdClient = '$id'


---------------
Main/Alt1/Alt2/Alt3
n°2196885
devicenotr​eady
insert disk and retry
Posté le 09-07-2013 à 12:38:16  profilanswer
 

Volkhen a écrit :

Citation :

mysql_connect


Pourquoi ?
Nous sommes en 2013, utiliser PDO pourrait être moins moche.


Pourquoi bien faire alors qu'on peut recopier des recettes de grand-mère qui polluent les résultats Google depuis la nuit des temps?  :p
 
Sérieusement, un code pareil, c'est une invitation à l'injection SQL, et good-bye la DB. :fou:


---------------
http://devicenotready.com/ - Informatique et autres bizarreries
n°2197691
imani_2
Posté le 16-07-2013 à 13:37:45  profilanswer
 

Bonjour,  
 
Excusez-moi énormément pour ce grand retard de répondre !
Franchement, je suis toujours dans l'impasse suite aux codes (modifier et supprimer) qui me malmènent jusqu'à présent.
Ben, J'ai essayé d'appliquer votre conseil mais aussi j'ai pu changé le design de mon projet mais çane marche pas toujours.
Actuellement, le code modifier ne supprime plus les codes mais mon grand souci à présent est que quand je modifie une donnée dans un formulaire, ce dernier (formulaire) vient sans aucune donnée, donc il apparait complétement vide. Alors, je comprends où serait vraiment l'erreur .
 
Pour être explicite, voici le code de modification dans ce même formulaire CLIENT :
 
<?php include("header.php" )?>
<?php  
//----------------------------connection à la base de données
require_once("connectionMYSQL.inc.php" );
 
//----------------------------- requete pour la modification
if(isset($_POST['bouton4'])){
$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);
}
//---------------------requete de recherche
 
$requete2 = "SELECT * FROM client WHERE IdClient='".$_POST['IdClient']."'";
$resultat2 = mysql_query($requete2);
$produit = mysql_fetch_array($resultat2);
 
?>
 
 
Et voici le formulaire :
 
 
 
<!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>
     
    <h2 align= "center">Modification des Clients</h2>
    <form align= "center" id="monform"  name = "form1" method = "post" action="clientUpdate.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="bouton4" value="Modifier"></td>    
    </tr>
    </table>
    </form>
    <?php include("footer.php" )?>
    </body>
    </html>
 
 
Aurai-je glissé une erreur quelque part ?! Aidez-moi s'il vous plait !
Et en plus, est ce qu'il y a un moyen de recevoir la réponse via mon e-mail parce que si j'ai tardé de répondre c'est parce que je pensais avoir votre réponse par e-mail.
 
Je compte sur votre aide encore une fois.
Merci et bonne journée.
 
 
["Avant de goutter au miel, on doit tout d'abord supporter les piqures de l'abeille"]  - Imani.

n°2198715
intel-44
Posté le 25-07-2013 à 11:50:27  profilanswer
 

Bonjour imani,
 
La récupération de tes données par le select retourne ta var $resultat2 que tu met dans le tableau $produit :

Citation :

$produit = mysql_fetch_array($resultat2);


 
Puis dans ton formulaire pas la suite, tu parcours le tableau $client pour l'affichage des données au lieu du tableau $produit.
 

Citation :

value="<?php echo $client['IdClient']; ?>">


 
Ce qui devrait devenir :  
 

Citation :

value="<?php echo $produit['IdClient']; ?>">


 
Tu dois donc changer cela dans tout les champs du formulaire ;)


Message édité par intel-44 le 25-07-2013 à 11:51:24

---------------
Cordialement, Intel

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  mon code "modifier" en php supprime les données au lieu de modifier

 

Sujets relatifs
Générer un fichier XML a partir de données HTMLModifier fonction javascript
probleme d execution sous code blocksProblème de création xml en PHP avec données d'une BD
[C# URGENT] lancer un exe avec un compte et un pwd ecrit dans le codeLien inverse dans les bases des données objet
Code pour système de voteBesoin d'aide sur un dossier de Base de données
Modifier le registre Windows graphiquementrecuperation des données d'un formulaire par mail
Plus de sujets relatifs à : mon code "modifier" en php supprime les données au lieu de modifier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR