Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/09/2011, 18:07
skirlappa
 
Fecha de Ingreso: junio-2005
Mensajes: 107
Antigüedad: 18 años, 10 meses
Puntos: 0
Problemas eliminar campos de mysql con checkbox

Hola, estoy empezando con esto de la programación y tengo un problema a la hora de borrar los campos con checkbox

La cosa es que muestro bien los resultados pero a la hora de pasar la variable con un arrray creo que no lo hago correctamente, gracias de ante mano y a ver si algun alma caritativa me puede ayudar.

Código:
<?php

/**
 * @author SyToo22
 * @copyright 2011
 */

$connect=mysql_connect("localhost","root","");
$selectDb=mysql_select_db("test",$connect);
$query=mysql_query("SELECT id, incl1, incl2 FROM test",$connect);

//$result=mysql_fetch_array($query);
$i=0;
?><form id="form1" name="form1" method="post" action="borrar.php"><?
while ($row=mysql_fetch_array($query))
{
    $i++;//contado para borrar
    ?> <label>
    <input type="checkbox" name="delete[]" id="<? $row['id']?>">
  </label><?
    echo $row['id']." ".$row['incl1']." y ".$row['incl2']."<br>";
    
}
  
      ?><p>
    <label>
      <input type="submit" name="2" id="2" value="Enviar">
    </label>
  </p>
  </form><?
echo "<br><center><a href=\"../ejercicios post/borrar.php\">Borrar registros</a>";
echo "<br> Numero de campos totales:".$i;
?>
Ahora paso a borrar e imprimo el paso de las variables para que pueda ver si se pasan o no y después las intento borrar:

Código:
<?php

/**
 * @author SyToo22
 * @copyright 2011

*/
$connect=mysql_connect("localhost","root","");
$selectDb=mysql_select_db("test",$connect);

//Muestro de forma humana si pasan las variables
	$fields = $_POST['delete']; 
	if (is_array($fields)) { 
		echo "<pre>";
		print_r($fields);
		echo "</pre>";
	}
    
//Intento eliminar con un loop todos los campos seleccionados    
    $count=count($fields);
    for($i=0;$i<$count;$i++)
{
   $consulta = mysql_query("DELET FROM test WHERE id = $fields");
   if(!$consulta)
   {
    echo "CAMPO NO BORRADO<BR>";
   }
   else
   {
    echo "CAMPO BORRADO<BR>";
   }
} 

?>
El resultado en pantalla de lo que muestra esta aplicación si seleccionamos dos checkbox es el siguiente:

Código:
Array
(
    [0] => on
    [1] => on
)

CAMPO NO BORRADO
CAMPO NO BORRADO
Creo que es porque no estoy pasando bien las ID sino que estoy pasando el valor ON e intentado borrar con ON como si fuera la id, y como es lógino no borra.

¿Alguna idea? gracias de antemano!