Dans ce nouveau cours, nous allons voir comment supprimer un enregistrement d'une base de données.
Reprenons notre table clients avec des nouvelles personnes inscrites.
Table clients :

Imaginons que pour n'importe quelle raison, nous souhaitons supprimer le compte de Cindy Menier.
Voici la requête a effectué :
DELETE from clients WHERE nom='Menier';
Détaillons plus en profondeur cette requête :
DELETE from clients = Supprimer de la table clients.
WHERE nom='Menier' = Ou le champ nom correspond à Menier.
Bien sur vous pouvez sélectionner d'autres champs pour supprimer le compte de Cindy Menier comme :
WHERE id='3'
WHERE prenom='Cindy'
Attention, ne sélectionnez pas le champ pays (WHERE pays="Pays 2 ") car ceci effacerait tous les enregistrements du même pays, donc ici le compte de Ingrid Bauer serait aussi supprimé.
Faites attention aussi à toujours mettre la clause WHERE, sinon toutes les informations contenues dans la table selectionner seront supprimés.
Maintenant que nous avons la requête, commençons par créer une simple page qui permettera de supprimer le compte de Cindy.
 |
<?php
//Connexion au serveur et à la base de données.
mysql_connect("localhost", "root", "")or die("La connexion au serveur a échoué");
mysql_select_db("tutoplus")or die("La connexion à la base de données a échoué");
?>
<html>
<head>
<title>Supprimer Cindy Menier </title>
</head>
<body>
<?php
// Requête pour supprimer Cindy Menier.
$req = "DELETE from clients WHERE nom='Menier'";
// Si il y a une erreur.
$result = mysql_query($req) or die ("Exécution de la requête impossible");
// On ferme la connexion.
mysql_close();
?>
Cindy Menier vient d'être supprimé de la table clients.
</body>
</html> |
Le plus utile serait de réaliser un petit formulaire qui nous permettrait de selectioner dans une liste le nom de la personne à supprimer (attention si il y a beaucoup de clients, la liste de selection n'est pas une bonne idée). Pour celà nous allons utiliser une requête sql SELECT qui nous permettra de recuperer les valeurs du champ Nom pour nous permettre de les selectionnés.
Voici comment faire :
 |
<?php
//Connexion au serveur et à la base de données.
mysql_connect("localhost", "root", "")or die("La connexion au serveur a échoué");
mysql_select_db("tutoplus")or die("La connexion à la base de données a échoué");
// On teste si le formulaire a été soumis, si il ne l'a pas soumis nous ignorons le if.
if (isset($_POST['Suppression']))
{
// Lancement de la requete pour supprimer le clients le clients qui est selectionner dans notre liste
$req = "DELETE from clients WHERE nom='".$_POST['select']."'";
// Si il y a une erreur.
$result = mysql_query($req) or die ("Exécution de la requête impossible");
echo 'Vous venez de supprimer "' .$_POST['select'].'" de la base de données';
}
?>
<html>
<head>
<title>Supprimer un enregistrement grâce à une liste de selection</title>
</head>
<body>
<?php
// lancement de la requete pour afficher les noms dans la liste
$req = "SELECT * FROM clients ORDER BY nom";
// si il y a une erreur
$result = mysql_query($req) or die ("Exécution de la requête impossible");
// on affiche le resultat dans une liste de selection
echo '<form id="form1" name="form1" method="post" action=""><table width="250" border="0" align="center"><tr><td width="155"><div align="center"><select name="select">';
// on créer une boucle pour extraire toutes les données
while ($donnee = mysql_fetch_array($result)) {
echo '<option>'.$donnee['nom'].'</option>';
}
echo '</select></div></td><td width="85"><input type="submit" name="Suppression" value="Supprimer" /></td></tr></table></form>';
?>
</body>
</html> |
Nous pouvons remarquer qu'il y a deux requêtes dans la meme page, la premiere est une requête DELETE qui s'exécutera seulement si le formulaire a été soumis (if), et l'autre requête est un SELECT qui elle nous permet d'afficher le contenu de la table.
Voilà pour ce tuto, j'espère que vous aurez tout compris.
|