
Après avoir vu l'affichage des données provenant d'une base de données, l'insertion et la modification de ces mêmes données, voyons maintenant la dernière opération fondamentale concernant ces base de données : la suppression de tuples.
Reprenons alors nos deux tables liste_proprietaire et liste_disque que nous avons utilise pendant tous les tutoriaux concernant les bases de données.
Je vous rappelle que l'on avait alors :
La table liste_proprietaire :
N. du propriétaire | Propriétaire | N. tél |
---|---|---|
1 | LA GLOBULE | 06-48-85-20-54 |
2 | Jeremy | 06-85-98-78-12 |
3 | Benoît | 06-55-99-10-00 |
4 | Tibo | 06-98-42-01-36 |
La table liste_disque :
N. du propriétaire | Auteur | Titre |
---|---|---|
1 | Cassius | Au rêve |
1 | Daft Punk | Discovery |
2 | Cassius | Au rêve |
2 | Télépopmusik | Genetic world |
3 | Clamaran | Release yourself |
2 | Bob Sinclar | Paradise |
4 | The supermen lovers | The player |
Voyons alors, en SQL, comment supprimer un tuple de la table liste_proprietaire.
Supposons que l'on désire supprimer Tibo de notre base de données. On écrira alors :
En effet, on efface un tuple (ou plusieurs, tout dépend de la clause WHERE) de quelle table ?
De la table liste_proprietaire.
Quel(s) tuple(s) efface-t-on ?
On efface tous les tuples de la table liste_proprietaire ou l'attribut nom prend la valeur Tibo (dans notre cas, un seul tuple porte la valeur Tibo pour l'attribut nom).
Notez bien que la clause WHERE peut très bien contenir plusieurs conditions, elles seront alors séparés par des opérateurs booléens (ANDcorrespondant à un ET logique ou OR correspondant à un OU logique).
Cependant, je vous rappelle que des requêtes SQL peuvent être beaucoup plus complexes, et dans ce cas, je vous renvoie à ladocumentation MySQL, ce qui à notre niveau (débutant) n'est pas vraiment intéressant (cela ne sert à rien de vous embrouiller les idées dès le départ).
Attention !!!
Lorsque l'on effectue une suppression de tuples, il faut toujours faire attention à effacer non seulement les tuples de la table dont on veut supprimer le(s) élément(s) mais éventuellement les autres tuples d'une autre table (si les deux tables sont jointes par le biais d'un attribut).
En effet, dans notre exemple, nous venons de supprimer de la table liste_proprietaire le tuple dont l'attribut nom valait Tibo. Cependant, on remarque que la table liste_disque comporte des éléments qui étaient liés à Tibo. Or, vu que ces elements ne nous servent plus à rien maintenant (car on a supprimer Tibo de la liste), il faut également penser à les supprimer (afin d'avoir une base de données homogène).
Voyons maintenant comment effectuer ces suppressions par le biais d'une page WEB écrite en PHP.
Prenons par exemple le cas d'une page PHP permettant la suppression de Tibo de la base de données ainsi que de toutes les informations le concernant (c'est-à-dire les disques lui appartenant).
On aura alors :
Que faire en plus ?
Comme dans les tutoriaux précédents, afin de rendre vos pages beaucoup plus dynamiques, il serait intéressant de faire une page WEB contenant un formulaire possédant un menu déroulant permettant de choisir le nom du membre à effacer.
On suppose alors que ce menu déroulant à le champ NAME qui prend la valeur proprio, et que le formulaire a son champ ACTION qui prend la valeur traitement.php.
Ceci implique que dans la page traitement.php, on aura une variable $proprio qui contient le nom du propriétaire à supprimer.
On aura alors le code suivant (pour la page traitement.php placée dans le même répertoire que la page WEB contenant le formulaire) :
Et voila, maintenant, vous devez maîtriser tout ce qui concerne les bases de données et les pages dynamiques en PHP.