Lo primero es saber cómo hacer el formulario html. La columna en cuestión estará formada por campos de tipo
checkbox, a los cuales conviene darles nombres de tipo arreglo:
Código:
<tr>
<td><input type='checkbox' name='borrar[163]'></td> ...
</tr>
<tr>
<td><input type='checkbox' name='borrar[164]'></td> ...
</tr>
<tr>
<td><input type='checkbox' name='borrar[1]'></td> ...
</tr>
<tr>
<td><input type='checkbox' name='borrar[2]'></td> ...
</tr>
<tr>
<td><input type='checkbox' name='borrar[3]'></td> ...
</tr>
<tr>
<td><input type='checkbox' name='borrar[4]'></td> ...
</tr>
<tr>
<td><input type='checkbox' name='borrar[26]'></td> ...
</tr>
El 'índice' del arreglo correspondería al código que, supongo, identifica de manera única a la fila (me imagino que es la llave primaria de una tabla).
En HTML, un
checkbox sólo se manda si está marcado. Es decir, no es que se mande
true o
false dependiendo de si está marcado o no, se manda (por defecto) 'on' en caso de que esté marcado y
no se manda nada en caso de que no esté marcado.
Cuando nombras los
checkbox como te indico, PHP los recibe también en un arreglo, pero, por lo dicho antes, sólo recibirá aquellos elementos que estén marcados. Así, suponiendo que el usuario marca el 164, el 2 y el 3, PHP recibirá
Código:
$borrar[163] = 'on'
$borrar[1] = 'on'
$borrar[2] = 'on'
y nada más.
Bueno, miento un poco. El arreglo $borrar no lo recibe drectamente sino que debes recuperarlo de la variable $_POST:
Código PHP:
$borrar = $_POST['borrar'];
Entonces, para saber cuáles elementos se marcaron para borrar, basta saber cuales índices vienen en el arreglo. Lo más sencillo será procesarlos con algo como:
Código PHP:
foreach (array_keys($_POST['borrar']) as $codigo)
{
...
}
array_keys toma nada más los índices, y el foreach .. as hace un ciclo que te da, en cada vuelta, el índice en turno en la variable $codigo. Con ello puedes aprovechar para construir la consulta DELETE tal como te han indicado antes.
Ahora, en este caso, y aprovechando las magníficas funciones con que cuenta PHP para el manejo de arreglos, podemos incluso ahorrarnos el ciclo.
La función implode, convierte un arreglo en una cadena de caracteres formada por todos sus elementos separados por el "pegamento" que indiquemos. Así,
Código PHP:
implode(',', array_keys($_POST))
devolverá una lista separada por comas de los códigos de las filas que se marcaron para borrar. Pero eso es justo lo que necesitas para el DELETE:
Código PHP:
$codigos = implode(',', array_keys($_POST));
$sql = "DELETE FROM tabla where codigo in ($codigos)";
Lo que faltaría aquí es la construcción del formulario, porque es de suponerse que justamente lo obtienes de una consulta y debes escribirlo por código php dinámicamente, pero eso ya te queda de tarea
//Saludos