Muestro un ejemplo de como lo hago yo.
Es para noticias, pero es lo mismo.
A cada item le pongo un check llamado "new_X" en donde X es el ID de ese item, ejemplo:
Código PHP:
<form action="" method="post">
<?php
$_sql = mysql_query("SELECT * FROM `news` WHERE `state` = 0");
while($_row=mysql_fetch_array($_sql)){
<input type="checkbox" name="new_'.$_row[id].'" value="ON" > '.$_row['title'].'<br />;
}
?>
<input type="submit" value="Aceptar" name="new_accept" />
</form>
Ahi ya tenes generado el listado con sus checks correspondientes y el boton.
Ahora, al principio del script (arriba de todo, antes del listado inclusive) haces el while que aceptara/eliminara o lo que sea que quieras que haga, en mi caso cambia el campo "state" de 0 a 1.
Código PHP:
<?php
if ($_POST["new_accept"]) {
$_sql_accept = mysql_query("SELECT * FROM `fw_news` WHERE `state` = 0 ORDER BY `id` ASC");
while($_row=mysql_fetch_assoc($_sql_accept)){
if($_POST['new_'.$_row[id]]) { $_sql_aupdate = mysql_query("UPDATE `news` SET `state` = '1' WHERE `id` = '$_row[id]'"); }
}
}
?>
Podrías poner otro boton en el formulario para eliminarlos, agrega esto en el form:
Código PHP:
<input type="submit" value="Eliminar" name="new_delete" />
y luego vas arriba de todo nuevamente y pegas este codigo:
Código PHP:
<?php
if ($_POST["new_delete"]) {
$_sql_delete = mysql_query("SELECT * FROM `news` WHERE `state` = 0 ORDER BY `id` ASC");
while($_row=mysql_fetch_assoc($_sql_delete)){
if($_POST['new_'.$_row[id]]) { $_sql_dupdate = mysql_query("DELETE FROM `news` WHERE `id` = '$_row[id]'"); }
}
}
?>
Bueno, ahi tienes un ejemplo de como lo hago yo, funciona rapido y nunca me ha fallado (lo probe hasta con 150 registros simultaneos, no se como funcionara con mas)
Luego puedes conseguirte un codigo javascript para seleccionar todos los checkboxes de una sola vez y ahorrarte ir tildandolos de a uno...