Dreamweaver MX possède par défaut un comportement serveur Supprimer un enregistrement.
En voici un qui permet de supprimer non pas un mais plusieurs enregistrements à la fois : utile quand on a besoin de faire du ménage rapidement dans une table…

Exemple d’utilisation
Supposons que nous avons une table actualite, qui sert à stocker et présenter des actus sur un site. Afin de garder cette table de dimension raisonnable, on décide de supprimer sélectivement de temps à autre des actualités qui ont plus de 3 mois.
Voici la structure et le contenu de la table. Elle a été simplifiée et réduite pour plus de clarté :

#
# Structure de la table `actu`
#DROP TABLE IF EXISTS actu;
CREATE TABLE actu (
idActu tinyint(3) unsigned NOT NULL auto_increment,
titre varchar(150) NOT NULL default »,
date date NOT NULL default ’0000-00-00′,
PRIMARY KEY (idActu),
UNIQUE KEY date (date)
);#
# Contenu de la table `actu`
#INSERT INTO actu VALUES (1, ‘Viva Cuba!’, ’2004-01-28′),
(2, ‘Jacques Brel : le coffret du 25e anniversaire’, ’2003-08-27′),
(3, ‘David Bowie, Reality’, ’2003-07-25′),
(4, ‘Le violon dans tous ses états’, ’2004-02-03′),
(5, ‘Je ne suis qu’une chanson’, ’2003-04-28′),
(6, ‘Herbie Hancock, My Point Of View’, ’2003-12-08′);
Si vous souhaitez suivre ce tutorial, vous pouvez télécharger le fichier SQL qui crée la table et insère quelques enregistrements.
Le jeu d’enregistrements
Créez un jeu d’enregistrements portant sur les données que nous voulons détruire, à savoir toutes les actus qui ont plus de 3 mois, et de trier ces données par ordre décroissant.:
SELECT *
FROM actu
WHERE date < DATE_SUB(NOW(), INTERVAL 90 DAY)
ORDER BY date DESC
Brève explication sur la clause WHERE utilisée ici :
Nous prenons la date d’aujourd’hui (NOW) à laquelle nous soustrayons (DATE_SUB) 90 jours (INTERVAL 90 DAY) et le résultat est comparé avec la colonne date de la table.
Le formulaire
Iinsérez un formulaire dans votre document, puis créez une région répétée dans ce formulaire de façon à afficher les données :

Rajoutez une colonne à droite du tableau, insérez une case à cocher, nommez-la et donnez lui une valeur dynamique qui correspondra à la valeur de la clé primaire idActu. Pour cela, sélectionnez la case à cocher, allez dans le panneau Applications > onglet Liaisons, déroulez le jeu d’enregistrements et glissez/déposez le texte dynamique idActu sur la case.

<input name= »supp » type= »checkbox » id= »supp » value= »<?php echo $row_rsActus3mois['idActu']; ?> »>
Puis ajoutez un bouton Supprimer. Attention : ce bouton ne doit pas être dans la région répétée! (Ici j’e l’ai simplement mis dans un autre tableau, sous le premier mais en dehors de la région répétée)

Le comportement
Appliquez le comportement. Sélectionnez les différents paramètres demandés, rentrez le nom de la case à cocher ainsi que l’URL de redirection quand la suppression est terminée.
Une fois appliqué, ce comportement a effectué deux opérations : outre le code PHP qui a été inséré en début de fichier, il a également renommé la case à cocher en lui rajoutant à la fin deux crochets : supp[].
Cette notation est nécessaire : elle signifie pour PHP qu’il est en présence d’une variable de type tableau, ce qui permett de stocker les différentes valeurs que peut prendre la clé primaire, selon les actualités affichées. En l’absence de ces crochets, supp serait une simple variable dont la valeur serait écrasée à chaque fois par la précédente.
Le code PHP tient en quelques lignes :

- Ligne 12 : on vérifie que le tableau supp n’est pas vide.
- Ligne 13 : on parcourt le tableau avec une boucle foreach
- Ligne 15 : on exécute la requête autant de fois qu’il y a d’éléments dans le tableau .
- Ligne 17 : redirection quand les suppressions sont terminées.
actu.zip (
SuppMultEnr.mxp (