elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Problemas al recoger de un ckeckbox el id recogido de la base de datos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problemas al recoger de un ckeckbox el id recogido de la base de datos  (Leído 1,719 veces)
luar79

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Problemas al recoger de un ckeckbox el id recogido de la base de datos
« en: 23 Enero 2016, 11:28 am »

Buenas!

Vereis estoy creando un backend, y mi intención es crear en cada fila de una tabla un checkbox que si lo selecciona el usuario y confirma en borrar se elimine esa fila. Para identificar que fila se selecciono a traves del checkbox se me ha ocurrido indicar en el atributo name el ID que tiene asignado cada fila en la BBDD.

EL problema lo tengo al comprobar dentro de un if que reciba que ID ha sido seleccionado. SI lo hago con un isset me da error de que el index is offset. Y si lo ejecuto como muestro en el codigo que adjunto en el mensaje, eliga el checkbox que eliga empieza siempre eliminando la última fila:

Código
  1. $registros=mysqli_query($conexion,"select * from usuarios")or
  2. die("Problemas en el select:".mysqli_error($conexion));
  3. while($reg=mysqli_fetch_array($registros))
  4. { $ID=$reg['ID'];
  5. echo $ID;
  6. $login=$reg['NombreUsuario'];
  7.  
  8.  
  9. echo "<form method='post' action='BBDD_usuarios.php' enctype='multipart/form-data'>";
  10. echo "<input type='checkbox' name='$ID' >&nbsp";
  11.  
  12.  
  13.  
  14.  
  15. mysqli_close($conexion);
  16. echo "<form method='post' action='BBDD_usuarios.php' enctype='multipart/form-data'>";
  17. echo "<input type='submit' name='borrar' value='borrar'>" ;
  18. echo "</form>";
  19. $borrar=$_REQUEST['borrar'];
  20.  
  21. if ($borrar){
  22. $conexion=mysqli_connect("localhost","root","","usuarios")or die("Problemas con la conexión");
  23.  
  24. $registros=mysqli_query($conexion,"select * from usuarios")or
  25. die("Problemas en el select:".mysqli_error($conexion));
  26.  
  27.  
  28. if($_POST[$ID]=true){
  29. echo "hola";
  30. $selecc=$_POST[$ID];
  31. echo $selecc;
  32.  
  33.  
  34. mysqli_query($conexion,"delete from usuarios where id='.$selecc.'") or
  35. die("Problemas en el delete:".mysqli_error($conexion));
  36. echo "<form method='post' action='BBDD_usuarios.php' enctype='multipart/form-data'>";
  37. }
  38.  
  39. mysqli_close($conexion);
  40. }
  41.  


Gracias de antemano por la ayuda!


Mod: Los códigos deben ir en etiquetas GeSHi


« Última modificación: 15 Febrero 2016, 17:04 pm por engel lex » En línea

ASW

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Problemas al recoger de un ckeckbox el id recogido de la base de datos
« Respuesta #1 en: 11 Febrero 2016, 03:05 am »

Hola, fijate en echo "<input type='checkbox' name='$ID' >&nbsp";
el nombre de la variable deberia ser ID, no $ID.
Si sigue sin funcionar le hecho otra mirada.
Saludos.


En línea

sodark

Desconectado Desconectado

Mensajes: 81


Ver Perfil WWW
Re: Problemas al recoger de un ckeckbox el id recogido de la base de datos
« Respuesta #2 en: 15 Febrero 2016, 16:54 pm »

Hola, fijate en echo "<input type='checkbox' name='$ID' >&nbsp";
el nombre de la variable deberia ser ID, no $ID.
Si sigue sin funcionar le hecho otra mirada.
Saludos.

Desde cuando el nombre de las variables en PHP van sin $ delante?

Respecto al OP, primero de todo decirte que los input checkbox solo se envian si estan marcados, ergo en el backend solo recibiras los que hayas marcado para borrar.

Si les das el mismo nombre, recibiras un "array" que podras recorrer. Cada input tiene un tag value='' que es donde yo pondria la id.

De esta forma luego en el backend, puedes recorrer el array y recuperaras la id de cada uno de los que se han enviado, de manera que tendras la id del que han marcado para borrar.

Luego si queires afinar la velocidad, te recomiendo que prepares la query y envies una unica query del formato

DELETE FROM tabla WHERE id_usuario IN ('id1','id2','id3')

Así solo enviarás una Query a la base de datos.

Para asegurarte haz la prueba, pero en vez de ejecutar la query, pintala y asi veras que realmente hace lo que quieres.
« Última modificación: 15 Febrero 2016, 16:56 pm por sodark » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[MySQL] Como saber cuando no he recogido datos
Bases de Datos
‭lipman 6 11,558 Último mensaje 1 Febrero 2010, 03:07 am
por ^Tifa^
Problemas al crear una base de datos sql en VB.NET
.NET (C#, VB.NET, ASP)
HacKreatorz 6 6,425 Último mensaje 18 Febrero 2010, 07:19 am
por HacKreatorz
problemas base de datos java
Programación General
zafiron 0 2,078 Último mensaje 19 Mayo 2010, 06:58 am
por zafiron
Recoger datos de otra web
PHP
SCM 2 2,032 Último mensaje 12 Febrero 2013, 22:53 pm
por SCM
Problemas con la base de datos.
Bases de Datos
christiantain 2 2,498 Último mensaje 18 Febrero 2014, 20:34 pm
por christiantain
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines