Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Eliminar multiples registros con checkbox

Estas en el tema de Eliminar multiples registros con checkbox en el foro de PHP en Foros del Web. Tengo esta pagina para eliminar varios registros utilizando los checkbox, pero no me funciona. Alguna idea de donde esta el error. eliminar.php @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 27/02/2014, 12:13
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 15 años, 7 meses
Puntos: 36
Eliminar multiples registros con checkbox

Tengo esta pagina para eliminar varios registros utilizando los checkbox, pero no me funciona.
Alguna idea de donde esta el error.

eliminar.php

Código PHP:
Ver original
  1. include('../includes/connx.php');
  2. echo "<strong>PERSONALIDADES.-</strong><br><br>";
  3. echo "<form action='eliminar_.php' method='post'>";
  4. $rs = $mysqli->query("SELECT * FROM tb_personalidades ORDER BY nombre");
  5. while ($row = $rs->fetch_assoc()){
  6. $idperson = $row['id'];
  7. echo "<input type='checkbox' name='check[]' id='check[]' value='$idperson' />" .$row['nombre'] .'<br>';
  8. }
  9. echo "<br><input type='submit' value='Eliminar' />";
  10. echo "</form>"

eliminar_.php

Código PHP:
Ver original
  1. $borrar = implode(",", $_POST['check']);
  2. $mysqli->query ("DELETE FROM NOMBRE_DE_TU_TABLA WHERE id IN ($deleteId)");
  3. echo "Articulo(s) borrado(s) satisfactoriamente";
  #2 (permalink)  
Antiguo 27/02/2014, 12:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Eliminar multiples registros con checkbox

Cita:
Alguna idea de donde esta el error.
¿Tenemos que ejecutar mentalmente el código o hay que adivinar?

Si no depuras tu código nosotros no lo vamos a hacer por ti, y tampoco vamos a leer tu mente para saber lo que sucede, los resultados, si recibes un error, etc.

Ayúdanos a ayudarte.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 27/02/2014, 12:27
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 15 años, 7 meses
Puntos: 36
Respuesta: Eliminar multiples registros con checkbox

La pagina eliminar_.php se muestra en blanco, solo muestra el mesaje:

Código PHP:
Ver original
  1. include('../includes/connx.php');
  2.     $borrar = implode(",", $_POST['check']);
  3.     $mysqli->query ("DELETE FROM NOMBRE_DE_TU_TABLA WHERE id IN ($deleteId)");
  4.     echo "Articulo(s) borrado(s) satisfactoriamente";
  #4 (permalink)  
Antiguo 27/02/2014, 12:40
Avatar de xpapachox  
Fecha de Ingreso: junio-2011
Mensajes: 77
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Eliminar multiples registros con checkbox

Nose para que usas la funcion "implode", cuando deberías recuperarlo como si fuera cualquier arreglo.
Código PHP:

$checks
= array();
$checks$_POST['check'];

for(
$i=0;$i<count($checks);$i++)
$deleteId $checks[$i];
$sql="DELETE FROM NOMBRE_DE_TU_TABLA WHERE id IN ('$deleteId');";
mysqli_query($link,$sql);

  #5 (permalink)  
Antiguo 27/02/2014, 12:46
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Eliminar multiples registros con checkbox

Cita:
Iniciado por xpapachox Ver Mensaje
Nose para que usas la funcion "implode", cuando deberías recuperarlo como si fuera cualquier arreglo.
El asunto, es que IN() se utiliza así:
Cita:
IN(a, b, c, ...)
Entonces, si los datos son un array:
Código PHP:
Ver original
  1. $foo = array(1, 2, 3);
  2. $bar = implode(',', $foo);
  3.  
  4. echo "IN($foo)"; // IN(1,2,3)

¿Se entiende?

Te sugiero consultar una referencia de SQL al respecto.

De hecho, hacerlo con el for() como sugieres es una solución peor, con una sólo consulta usando IN() se resuelve el problema.

No hace falta hacer N consultas para eso, sería un desperdicio.

alexisverano, ¿tu tabla se llama NOMBRE_DE_TU_TABLA?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 27/02/2014, 12:58
Avatar de xpapachox  
Fecha de Ingreso: junio-2011
Mensajes: 77
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Eliminar multiples registros con checkbox

Creo que deberías hacer un print_r() a $_POST['check'].
Para ver que tipo de Datos usas para el Id o para ver si en verdad te devuelve algún valor aquel arreglo.

O quizá te falta:
include('../includes/connx.php');

Deberías pegar el código desde la parte inicial de la hoja, para un mejor análisis.
  #7 (permalink)  
Antiguo 27/02/2014, 13:56
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 15 años, 7 meses
Puntos: 36
Respuesta: Eliminar multiples registros con checkbox

Gracias a todos los que dedicaron su tiempo.

pateketrueke: gracias por tu ayuda, estaba usando esto
Código PHP:
Ver original
  1. ...WHERE id IN ($deleteId)");
y en realidad era esto:
Código PHP:
Ver original
  1. ...WHERE id IN ($borrar)");

Dejo el codigo completo. FUNCIONANDO PERFECTO, ahora voy al tema de las validaciones, seguridad y otros mensajitos...

eliminar.php

Código PHP:
Ver original
  1. include('../includes/connx.php');
  2. echo "<strong>PERSONALIDADES.-</strong><br><br>";
  3. echo "<form action='eliminar_.php' method='post'>";
  4. $rs = $mysqli->query("SELECT * FROM tb_personalidades ORDER BY nombre");
  5. while ($row = $rs->fetch_assoc()){
  6. $idperson = $row['id'];
  7. echo "<input type='checkbox' name='check[]' id='check[]' value='$idperson' />" .$row['nombre'] .'<br>';
  8. }
  9. echo "<br><input type='submit' value='Eliminar' />";
  10. echo "</form>"

eliminar_.php

Código PHP:
Ver original
  1. include('../includes/connx.php');
  2. $borrar = implode(",", $_POST['check']);
  3. $mysqli->query ("DELETE FROM tb_personalidades WHERE id IN ($borrar)");
  4. echo "Articulo(s) borrado(s) satisfactoriamente";

Última edición por alexisverano; 27/02/2014 a las 14:03

Etiquetas: checkbox, multiples, registro, registros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:23.