par
Ryle » 07 nov. 2012, 10:47
Et il faut surtout adapter le traitement pour qu'il parcours un tableau d'id et non pas une requête SQL :
if (isSet($_POST['options'])
{
$total = count($_POST['options']);
$options = $_POST['options'];
for ($i = 0; $i < $total; $i++)
{
mysql_query('DELETE FROM contact WHERE id = '. $options[$i]); // nota : pas de quote ou de guillemets autour des nombres en sql
}
}
ou plus simplement :
if (isSet($_POST['options']) {
foreach ($_POST['options'] as $i) { // le foreach parcours les éléments un par un sans avoir besoin de les compter
$sql = 'DELETE FROM contact WHERE id = ' . $options[$i];
mysql_query($sql); // exécute une requête par id à supprimer
}
}
ou plus optimisément (?) :
if (isSet($_POST['options']) {
$sql = 'DELETE FROM contact WHERE id IN (' . implode(',', $options) . ')'; // le implode() va générer la chaîne : id1,id2,... à partir des id récupérés
mysql_query($sql); // exécute une seule requête pour supprimer tous les id
}
Et il faut surtout adapter le traitement pour qu'il parcours un tableau d'id et non pas une requête SQL :
[php]if (isSet($_POST['options'])
{
$total = count($_POST['options']);
$options = $_POST['options'];
for ($i = 0; $i < $total; $i++)
{
mysql_query('DELETE FROM contact WHERE id = '. $options[$i]); // nota : pas de quote ou de guillemets autour des nombres en sql
}
}[/php]
ou plus simplement :
[php]if (isSet($_POST['options']) {
foreach ($_POST['options'] as $i) { // le foreach parcours les éléments un par un sans avoir besoin de les compter
$sql = 'DELETE FROM contact WHERE id = ' . $options[$i];
mysql_query($sql); // exécute une requête par id à supprimer
}
}[/php]
ou plus optimisément (?) :
[php]if (isSet($_POST['options']) {
$sql = 'DELETE FROM contact WHERE id IN (' . implode(',', $options) . ')'; // le implode() va générer la chaîne : id1,id2,... à partir des id récupérés
mysql_query($sql); // exécute une seule requête pour supprimer tous les id
}[/php]