Foros del Web » Programando para Internet » PHP »

Problema con borrado multiple checkbox

Estas en el tema de Problema con borrado multiple checkbox en el foro de PHP en Foros del Web. Tengo un formulario con varios checkbox con esta estructura. <input type='checkbox' name='campos[$variable]'> Página php que recoge los datos y borra los registros marcados Código PHP: ...
  #1 (permalink)  
Antiguo 29/10/2011, 05:28
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 20 años, 10 meses
Puntos: 13
Problema con borrado multiple checkbox

Tengo un formulario con varios checkbox con esta estructura.

<input type='checkbox' name='campos[$variable]'>

Página php que recoge los datos y borra los registros marcados

Código PHP:

<?php
 
if(!empty($_POST['campos'])) {
  
$borra=array_keys($_POST['campos']);
  
$sQuery="DELETE FROM tabla where ID IN (".implode(',"',$borra).")";
 }
 echo 
$aLista;
 
?>
El caso es que no me da errores pero no los borra. Creo que por problemas de comillas pero he hecho mil pruebas y buscado soluciones en los foros pero nada.
Si alguien me puede orientar quedaría super agradecido.
  #2 (permalink)  
Antiguo 29/10/2011, 07:08
Avatar de tomark4  
Fecha de Ingreso: septiembre-2007
Mensajes: 154
Antigüedad: 16 años, 7 meses
Puntos: 29
Respuesta: Problema con borrado multiple checkbox

el input lo creas asi :

Código HTML:
Ver original
  1. <input type='checkbox' name='campos[]' value='<?php echo $variable;?>'>

y lo recoges de esta manera:


Código PHP:
Ver original
  1. <?php
  2. $valores = $_POST[nombre];
  3. $id = implode(",",$valores);
  4. $sql = "delete from mitable where id in(".$id.")";
  5.  
  6. ?>
__________________
"Todos somos ignorantes, pero no todos ignoramos las mismas cosas"

http://www.pctec21.blogspot.com
http://www.pctec21.com
  #3 (permalink)  
Antiguo 29/10/2011, 10:45
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 20 años, 10 meses
Puntos: 13
Respuesta: Problema con borrado multiple checkbox

Muchas gracias.

No se,
lo he probado y no me da error pero no borra el registro. El valor de la variable en el value del checkbox es correcta.

Añadir que es una cadena de texto, no es numérica.

Si vamos al php de Pero Grullo supongo que $_POST[nombre]; te refieres a $_POST[campos];
También he probado con $_POST["campos"];
Vamos que me quedaría así después de la conexión con la BBDD:

Código PHP:



<?php
$valores 
$_POST["campos"];
$id implode(",",$valores);
$sql "delete from cliente where ID3 in(".$id.")";
 echo 
"registros de la consulta borrados";
?>
Pues no me borra y tampoco me da error.
Hasta creo que había probado esta forma. Pero nada
Toy desesperao.

Gracias
  #4 (permalink)  
Antiguo 29/10/2011, 10:49
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problema con borrado multiple checkbox

Te falta ejecutar la consulta con mysql_query como quieres que te borre sin eso

http://php.net/manual/es/function.mysql-query.php
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 29/10/2011, 11:09
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 20 años, 10 meses
Puntos: 13
Respuesta: Problema con borrado multiple checkbox

Código PHP:
<?php
$valores 
$_POST["campos"];
$id implode(",",$valores);
mysql_query("delete from cliente where ID3 in(".$id.")");
echo 
"delete from cliente where ID3 in(".$id.")";
?>
Así sería?
ese echo me arroja la consulta y veo que los valores no tienen comillas, no deberían tenerlas?
Pues nada
  #6 (permalink)  
Antiguo 29/10/2011, 11:13
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problema con borrado multiple checkbox

- Necesitas una conexión a mysql
- Necesitas seleccionar una tabla

Las cosas no se hacen por arte de magia...

Ajusta esto a tus necesidades:

Código PHP:
Ver original
  1. <?php
  2. $c = mysql_connect('localhost', 'root', '12345');
  3. mysql_select_db('basededatos');
  4. $sql = 'aqui la consulta';
  5. $res = mysql_query($sql) or die(mysql_error());
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #7 (permalink)  
Antiguo 29/10/2011, 11:16
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 20 años, 10 meses
Puntos: 13
Respuesta: Problema con borrado multiple checkbox

Bueno, en el primer post ya dije que esto era después de la conexión, y la tabla cliente y la coluna ID3 están seleccionadas. Tengo otras consultas de eliminación exactamente igual pero sin ser múltiples y van.
Voy a probar tu plantilla y ojalá funcione pero sabes que te digo? Qu no va a funcionar, pero como soy muy bien mandado lo haré
  #8 (permalink)  
Antiguo 29/10/2011, 11:18
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problema con borrado multiple checkbox

pues adivino no soy, para leer tus post anterior...

Código PHP:
Ver original 

Agrega eso a mysql_query para poder saber el error en la consulta.

Además hasle un print_r a $id muestrame que contenido tiene.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #9 (permalink)  
Antiguo 29/10/2011, 11:19
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 20 años, 10 meses
Puntos: 13
Respuesta: Problema con borrado multiple checkbox

Hombre yo te agradezco tu ayuda pero de mala leche pues mejor no lo hagas. Mi primer post de ESTE post.
  #10 (permalink)  
Antiguo 29/10/2011, 11:25
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 20 años, 10 meses
Puntos: 13
Respuesta: Problema con borrado multiple checkbox

Si ahora arroja los errores claro, antes no lo hacía lo que no quería decir que no los hubiese.
Ahora me pone

Unknown column ''1319880413'' in 'where clause'.
No entiendo
  #11 (permalink)  
Antiguo 29/10/2011, 11:28
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problema con borrado multiple checkbox

Cita:
Iniciado por autonotel Ver Mensaje
Si ahora arroja los errores claro, antes no lo hacía lo que no quería decir que no los hubiese.
Ahora me pone

Unknown column 'el valor de la variable' in 'where clause'.
No entiendo
mala leche? jajaja ni sé que es, pero relax

Ese error significa que tienes una columna que no existe, sería mejor ver el error exacto
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #12 (permalink)  
Antiguo 29/10/2011, 11:33
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 20 años, 10 meses
Puntos: 13
Respuesta: Problema con borrado multiple checkbox

Entiendo que $id es el valor que tiene que tener la columna ID3. Es decir, le estoy pidiendo que me borre los registros cuyo valor en la columna ID3 de la tabla cliente sean ($id, ...)en este caso $id es '1319880413'

eroor:
  #13 (permalink)  
Antiguo 29/10/2011, 11:36
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problema con borrado multiple checkbox

Tienes un problema con los datos. Tienen doble comilla sencilla. Desde ahí viene el error. Trata de quitar los dobles algo así:

Código PHP:
Ver original
  1. $valores = $_POST["campos"];
  2. print_r($id); //copia el resultado
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #14 (permalink)  
Antiguo 29/10/2011, 11:41
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 20 años, 10 meses
Puntos: 13
Respuesta: Problema con borrado multiple checkbox

El echo de la consulta es: delete from cliente in ID3 where(1319880413)

No es al reves? que no lleva comilla donde debería haberlas?
  #15 (permalink)  
Antiguo 29/10/2011, 11:42
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 20 años, 10 meses
Puntos: 13
Respuesta: Problema con borrado multiple checkbox

Bueno al revés: delete from cliente where ID3 in(1319880413)
  #16 (permalink)  
Antiguo 29/10/2011, 11:44
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problema con borrado multiple checkbox

El echo de la consulta es: delete from cliente in ID3 where(1319880413) ???

Si esa es la consulta está mal
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #17 (permalink)  
Antiguo 29/10/2011, 11:45
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 20 años, 10 meses
Puntos: 13
Respuesta: Problema con borrado multiple checkbox

Bueno al revés: delete from cliente where ID3 in(1319880413)
  #18 (permalink)  
Antiguo 29/10/2011, 11:49
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 20 años, 10 meses
Puntos: 13
Respuesta: Problema con borrado multiple checkbox

Lo he arreglado de una manera muy bruta gracias a str_replace:
$sql = "delete from cliente where ID3 in(".$id.")";
$sql = str_replace("(", "('", $sql);
$sql = str_replace(")", "')", $sql);
$sql = str_replace(",", "','", $sql);

Muchas gracias, el str_replace era lo que necesitaba desde el principio por lo que parece.
Me has orientado en encontrar los errores lo cual te agradezco mucho.

Gracias

Etiquetas: borrado, checkbox, formulario, registro, tabla, variables
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 06:28.