Fonction supprimer

Fermé
manureva2b - 9 déc. 2012 à 19:10
mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 - 10 déc. 2012 à 17:11
Bonjour,

J'essaie de me faire un intranet pour mes besoins personnels qui me permet d'avoir ma liste de client dans une base de donnée. J'ai ma page "client" qui m'affiche tout convenablement ainsi que mon formulaire pour enregistrer un client.

Je souhaiterez pouvoir supprimer un client, j'ai donc créé une page "supp-client". Le probleme est que lorsque je fais tourner mon script php il m'efface tout au lieu de me supprimer que celui où je renseigne l'id.

voici le code:

<?php
       // connexion à la base
$db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
// sélection de la base  

    mysql_select_db('intranet',$db)  or die('Erreur de selection '.mysql_error()); 
	
//On determine l'expression a rechercher
if(isset($_GET['recherche']))
{
        $rec = htmlentities($_GET['recherche']);
}
else
{
        $rec = '';
}
 $mots = explode(' ',$rec);//En separre lexpression en mots cles
        foreach($mots as $mot)
        {
                $req .= 'id LIKE "%'.$mot.'%"';
        }
        $req .= ' 1=0';


//On dertermine les informations rechercher dans la table
$req = 'DELETE FROM client WHERE id LIKE "%'.$mot.'%"';

$requete = mysql_query($req);
//
?>
<form action="" method="get">
  <p> 
    <input type="text" name="recherche" value="<?php echo $rec; ?>" />
    <br />
     </p>
    <input type="submit" value="Rechercher" />
  </p>
</form>


Si quelqu'un peut m'aider.

merci

A voir également:

2 réponses

mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
9 déc. 2012 à 23:34
Bonjour,

Vous supprimez physiquement une fiche?

ERREUR

C'est un fichier client. Il faut conserver un historique.

Modifiez plutôt la fiche sur un champ actif = oui / non

A+
0
Bonjour,

Vous avez entièrement raison.

Mais pour mon info perso j'aimerais bien savoir d'où vient l'erreur de mon code?
0
mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
10 déc. 2012 à 17:11
DELETE FROM client WHERE id LIKE "%'.$mot.'%"'


On ne fait pas un DELETE sur un ID Like.... C'est un coup à effacer accidentellement des fiches qu'on veut garder....

par principe, un id est un index unique. Un code client ou un numéro de fiche.

$sql = "DELETE FROM client WHERE id ='$mot' ";
mysql_query($sql);


rajoutez dans votre base un champ actif, taille 1 caractère, par défaut 'O' (lettre O pour Oui)

Et au lieu d'effacer:

$sql = "UPDATE client SET actif='N' WHERE id='$mot' ";

Donc, le clic sur "supprimer" var en fait désactiver le client.

Si par exemple, dans une autre table vous avez un historique des contacts ou des ventes, vous gardez trace de ce client.

Votre client c'est un PRO? Il a un RCS?
Imaginez qu'il vous ait laissé des impayés.... Il revient pour racheter. Eh bien vous l'avez désactivé mais conservé l'historique des impayés.
0