Suppression d'1 enregistrement avec formulair

lauraM -  
 lauraM -
Bonjour,
Je fais actuellement un formulaire en php où je fais des ajouts, des modifications et des suppressions de données dans ma base de données mysql.
Le problème qui se pose est concernant la suppression d'un enregistrement.
Dans le formulaire (au niveau des suppressions) je sélectionne le nom d'un client puis je click sur mon bouton supprimer.
J'ai donc une page qui s'affiche me disant que ma valeur a bien été supprimer.
Problème !!! Lorsque je vais dans mysql pour voir si cet enregistrement a bien été supprimé je m'aperçois qu'il est toujours présent.
Donc voilà je vous passe le code nécessaire pour m'aider à résoudre la problème.
Ceci est ma partie du formulaire où je supprime l'enregistrement:

<form method="post" action="supprimerClient.php">
<fieldset id="suppression" style="width=500px; height=130px">
<legend align=top>Supprimer le nom d'un client :</legend>
<blockquote>Nom du client :</blockquote>       
<select name="supprClient">
<?php
$sql= "SELECT `Nom client` FROM client WHERE (`client`.`Nom client` <> '') ORDER BY `client`.`Nom client` ASC";
$res=mysql_query($sql);
echo "<option>Choisissez un client</option>\n";
while($val=mysql_fetch_array($res))
{
echo "<option>".$val["Nom client"]."</option>\n";
}
?>
</select>
<br><br>
<input type="submit" name="supprimer" value="Supprimer">
</fieldset></form>

Ceci est ma page.php qui exécute les requêtes de suppression après click du bouton supprimer dans le formulaire :

<?php
// on se connecte à notre base
$servername='localhost';
$username='root';
$password='';
$connexion = mysql_connect ($servername, $username, $password);
mysql_select_db ('ficheintervention', $connexion) ;
$clt = $_POST['supprClient'];
// on teste si la variable du formulaire est bien déclarée
if (isset($clt)) {
// on recherche le numero du client à supprimer
$sql = "SELECT 'IdClt' FROM client WHERE 'Nom client' = '".$clt."'";
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// on recupere le resultat sous forme d'un tableau
$data = mysql_fetch_array($req);
// on recupere la valeur qui nous intersse
$num_client = $data['IdClt'];
// on libère l'espace mémoire alloué pour cette interrogation de la base
mysql_free_result ($req);
// lancement de la requête pour effacer notre client
$sql ="DELETE from client WHERE 'Nom client' ='".$clt."'";
// on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die)
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
// lancement de la requête pour effacer les disques de notre membre
$sql ="DELETE from demandeclient WHERE 'IdClt' ='".$num_client."'";
// on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die)
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
// on ferme la connexion à la base
mysql_close();
// un petit message afin de voir ce qui s'est passé
echo 'Nous venons de supprimer le client de la base.';
}
else {
echo "La variable n'a pas été supprimé.";
}
?>

GRAND MERCI A TOUT CEUX QUI POURRONT M'AIDER !!!
A voir également:

7 réponses

lauraM
 
Personne ne peut m'aider ???
0
cubi77 Messages postés 4 Statut Membre
 
Salut, c'est mon premier post sur ce forum alors soyez indulgent s'il vous plait.

Si j'ai bien compris il s'agit simplement de supprimer une entrer dans une table. Je pense que tu te complique un petit peu la vie.
Voila une fonction que tu devrai mettre dans ta premiere page:

function afficheSelect(){
	connection();
	$resultat=mysql_query("select id, nom from client")or die(mysql_error());
	mysql_close();
							
	print("<select name='supprClient'>");
	print("<option value='' selected></option>");
	while($donnee=mysql_fetch_array($resultat)){
		print("<option value='".$donnee['idClient']."'>
                                         ".$donnee['nomClient']."</option>");
	}
	print("</select>");
}


tu met tout sa dans un formulaire et tu l'envoi a ta page suivante.

Dans la page suivante tu pourra mettre ceci:

//recuperation de l'id

$idClient=$_POST['idClient'];

function supprimer($idClient){
	connection();
	$resultat=mysql_query("delete from client where id=".$id."");
	mysql_close();
		
	if (!$resultat) {
		print("Echec de la suppression! " . mysql_error());
	}
	else{
		print("Suppression reussi!");
	}
}


Avec sa je pense que ton probleme sera resolu. Mais petit bemol si ta table comprend un nombre important de clients sa risque de ralentir un petit peu le chargement, puisque que tu doit charger tout les noms et id dans ta page.
0
lauraM
 
Merci de ton aide.
J'ai fait exactement ce que tu m'a conseillé et ma liste déroulante ne s'affiche pas.
Je vais devoir quitter le travail donc je serais là surement lundi mais j'accepte volontier vos réponses.
Cela fait un petit bout de temps que je suis sur ce problème.
Je précise une autre chose c'est que mon 'idclient' je l'ai aussi en clef étrangère dans une autre table.
Merci
0
cubi77 Messages postés 4 Statut Membre
 
Est ce que tu peut envoyer ce que tu a fait et un récapitulatif de tes table stp.
0

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

Posez votre question
lauraM
 
Bonjour,
Veuillez m'excuser pour cette réponse tardive.
Ce que j'ai dans mon formulaire et dans mon fichier de traitement des données est juste en haut lorsque je pose ma question.
En ce qui concerne la structure de mes tables (requises pour la suppression d'un lcient) elles se présentent comme suit :

TABLE 'client'
IdClt int(11) Non
Nom client varchar(30) Oui NULL

TABLE 'demandeclient'
IdDemande int(11) Non
IdSoc int(11) Oui NULL
IdClt int(11) Oui NULL
Demande du Client varchar(500) Oui NULL

En fait dans la table 'demandeclient', il y a en clé étrangère la clé primaire de la table 'client'. Donc peut-être q'un simple "DELETE FROM client WHERE 'Nom client'='".$nomclientselectionne."';" ne suffit pas.
Qu'en pensez vous ???
Merci de votre aide.
0
lauraM
 
Salut,
j'ai toujours pas résolu mon problème je désespère un peu!
Il n'y a toujours personne qui puise m'aider ?
0
lauraM
 
Bonjour,
cela fait plusieurs jurs que je suis sur ce problème donc je retente ma chance sur ce forum pour savoir si quelqu'un pouvait m'aider.
Merci d'avance.
0