Bonjour,
Voici comment effacer plusieurs enregistrements d'une table mysql via des checkbox,
soit vous effacez tout soit vous sélectionnez les enregistrements à effacer.
On crée un nouveau fichier php, on y place le code suivant pour se connecter à la base de données.
<?php
$host="localhost"; //serveur
$login="root"; //login sql
$password=""; // mot de pass sql
$base=""; // nom de la base
mysql_connect($host,$login,$password) or die(mysql_error());
mysql_select_db($base);
?>Ensuite on va placer la structure de notre code html, en dessous vous placez ce code :
<!DOCTYPE html PUBLIC "-//W3C//Dspan XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/Dspan/xhtml1-transitional.dspan">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>
<body>
<form name="FormName" action="" method="post">
<div>
<span align="center"><input type="checkbox" name="CheckAll" id="CheckAll" value="1" onClick="checkAll(FormName)">Check all</span>
<span align="center"><strong>Titre</strong></span>
<span align="center"><strong>Date Ajout</strong></span>
</div>
<div>
<span align="center"><input type="checkbox" name="to_del[]" value="id"></span>
<span>Titre</span>
<span>Date</span>
</div>
<div>
<span colspan="5" align="center"><input type="submit" value="Delete" name="Delete"> <input type="reset" value="Reset" /></span>
</div>
</form>
<br />
</body>
</html>Voilà nous avons la structure pour continuer notre travail.
Nous allons ajouter la requête qui liste les sujets :
<?php
$query = "SELECT * FROM table ORDER BY id DESC";
$result = mysql_query($query);
while ($rows = mysql_fetch_assoc($result)){
if ($i % 2 == 0){?>
<span><input type="checkbox" name="to_del[]" value="<?php echo $rows["id"];?>"></span>
<span><?php echo $rows['Titre']; ?></span>
<span><?php echo $rows['Date_ajout']; ?></span>
</div>
<?php }else{ ?>
<div>
<span align="center" bgcolor="#E6EEF4"><input type="checkbox" name="to_del[]" value="<?php echo $rows["id"];?>"></span>
<span><?php echo $rows['Titre']; ?></span>
<span><?php echo $rows['Date_ajout']; ?></span>
</div>
<?php }
$i++;
}
?>Ici notre requête affiche une checkbox à côté de chaque objet de la table et change la couleur de chaque ligne via un modulo.
Placez ce code dans le deuxième div.
Maintenant il faut gérer la suppression.
Il faut récupérer toutes les checkbox et les passer dans une variable.
<?php
if($_POST['Delete']=='Delete') {
//Declaration auto des variables
foreach($_POST as $k => $v){
$$k = $v;
}
//Parcours du tableau des items qui doivent être supprimés
foreach($to_del as $v){
mysql_query("DELETE FROM table where id='$v'");
}
echo "<meta http-equiv=\"refresh\" content=\"0;URL=index.php\">";
}
?>Placez ce code après la balise </form> du code html.
Il ne reste plus que la fonction javascript qui va faire tourner tout ça :
<script type="text/javascript">
function checkAll(field) {
if (field.CheckAll.checked == true) {
for (i = 0; i < field.length; i++) {
if (field[i].name == "to_del[]"){
field[i].checked = true;
}
}
}
else {
for (i = 0; i < field.length; i++) {
if (field[i].name == "to_del[]"){
field[i].checked = false;
}
}
}
}
</script>Ce code est à placer avant la balise </head>.
La table mysql :
CREATE TABLE `tablenom` (
`id` int(11) NOT NULL auto_increment,
`Titre` varchar(255) NOT NULL default '',
`Date_ajout` date NOT NULL default '0000-00-00',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;Voilà .
BÃ v,
Burnside.
