Me resulta un poco difícil trabajar con tu código porque no tengo las tablas.
Hice otro ejemplo con un array que es lo mismo.
El problema actual es que no estás guardando correctamente los valores en el formulario inicial y por tanto no llegan los datos al siguiente script.
Esta es una aproximación, la solución más eficiente no es esta, pero eso tendrás que estudiarlo por tu cuenta.
Te paso dos archivos,
1.php
Hace la consulta a la DB y genera el formulario con los datos
2.php
Recoge los valores y determina qué borrar y qué insertar. Espero que sirva, saludos.
1.php
Código PHP:
<?php
// Hago una consulta a la base de datos y me devuelve esto
$usuarios = array(
1 => "Pepe",
2 => "José",
3 => "Otro",
4 => "Juan",
5 => "Pedro",
6 => "Martín",
7 => "Kiko",
9 => "Chichi",
);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Pruebas de for</title>
</head>
<body><form id="form1" name="form1" method="post" action="2.php">
<table width="600" border="1" align="center">
<tr>
<td colspan="2"><div align="center">Listado de Usuarios (<?=count($usuarios)?> registros) </div></td>
</tr>
<?php
//Con los resultados de la consulta hago un formulario, el checkbox tiene un nombre ÚNICO para cada fila y además, el valor es el id de usuario
//En el script destino recibiré variables $_POST['checkbox_0'], $_POST['checkbox_3'], etc UNA POR CADA USUARIO SELECCIONADO
for($i = 1;$i<count($usuarios);$i++){
?>
<tr <?=($i%2==0?"bgcolor=\"#CCCCCC\"":"")?>>
<td width="20">
<input type="checkbox" name="checkbox_<?=$i?>" value="<?=$i?>" /> </td>
<td width="570"><?=$usuarios[$i]?></td>
</tr>
<?php } ?>
<tr>
<td colspan="2"><label>
<div align="center">
<input type="submit" name="Submit" value="Enviar" />
</div>
</label></td>
</tr>
</table>
</form>
</body>
</html>
2.php
Código PHP:
<?php
print_r($_POST);
// Hago LA MISMA la base de datos y me devuelve esto
$usuarios = array(
1 => "Pepe",
2 => "José",
3 => "Otro",
4 => "Juan",
5 => "Pedro",
6 => "Martín",
7 => "Kiko",
9 => "Chichi",
);
//Ahora recogo las variables tipo $_POST['checkbox_xx']
for($i = 1;$i<count($usuarios);$i++){
echo $i;
if(in_array($i, $_POST)) {
$insertar[$i] = $i; //Ahora $insertar guardará los valores de los checkbos seleccionados
} else
{
$borrar[] = $i; //Si no está seleecionado lo tenemos que borrar, el id lo guardamos en $borrar
}
}
echo "<h1>Ids a insertar</h1>";
print_r($insertar); //Ahora selecciona de la db los usuarios con estos id y los insertas
echo "<h1>Ids a borrar</h1>";
print_r($borrar); //Ahora borra lo usuarios con estos id
?>