Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Borrar registros seleccionados en checkbox de la basedatos

Estas en el tema de Borrar registros seleccionados en checkbox de la basedatos en el foro de PHP en Foros del Web. Que tal foreros!!!!. De nuevo tengo un problema para eliminar registros de una base de datos. Quiero eliminar los clientes que selecciones en los checkboxs ...
  #1 (permalink)  
Antiguo 09/04/2014, 12:50
Avatar de HackID1  
Fecha de Ingreso: febrero-2013
Ubicación: En Update
Mensajes: 492
Antigüedad: 11 años, 2 meses
Puntos: 17
Pregunta Borrar registros seleccionados en checkbox de la basedatos

Que tal foreros!!!!.

De nuevo tengo un problema para eliminar registros de una base de datos.

Quiero eliminar los clientes que selecciones en los checkboxs que se visualizan.

Este es el formulario que muestra los datos y un checkbox cada uno con su codcliente.

Código PHP:
Ver original
  1. include('abre_conexion.php');
  2.            
  3.        
  4.         // Imprime casilla de verificación
  5.         $query = "SELECT codcliente, nombre, apellido, dni, telefono, email
  6.                     FROM $tabla_db1";
  7.                    
  8.         $result = mysql_query($query);
  9.  
  10.             echo "
  11.                 <form action='eliminarcliente3.php' method='post' >
  12.                 <div align='center'>
  13.                     <table align='center' border='1' width='100%'>
  14.                    
  15.                         <tr align='center'>
  16.                             <td> <strong> C&oacute;digo Cliente </strong></td>
  17.                             <td> <strong> Nombre </strong>                  </td>
  18.                             <td> <strong> Apellido </strong>                    </td>
  19.                             <td> <strong> DNI o CIF </strong> </td>
  20.                             <td> <strong> Tel&eacute;fono  </strong> </td>
  21.                             <td> <strong> Email </strong> </td>
  22.                             <td> <strong> Borrar </strong> </td>
  23.                         </tr>
  24.            
  25.                 ";
  26.        
  27.         while ($registro = mysql_fetch_array($result)) {
  28.             echo "    
  29.                        
  30.                         <tr align='center'>
  31.                             <td width='10%'>".$registro['codcliente']."</td>
  32.                             <td width='10%'>".$registro['nombre']."</td>
  33.                             <td width='10%'>".$registro['apellido']."</td>
  34.                             <td width='10%'>".$registro['dni']."</td>
  35.                             <td width='10%'>".$registro['telefono']."</td>
  36.                             <td width='10%'>".$registro['email']."</td>
  37.                             <td width='5%' align='center'>
  38.                                 <input type='checkbox' name='borrar' value='".$registro['codcliente']."'/>
  39.                             </td>
  40.                         </tr>
  41.                         <tr>
  42.                             <td>
  43.                            
  44.                             </td>
  45.                         </tr>
  46.                 ";
  47.          }
  48.          ?>
  49.                         <tr>
  50.                             <td>
  51.                                 <input name="enviar" type="submit" value="Enviar datos."/>
  52.                                 </form>
  53.                             </td>
  54.                         </tr>              
  55.                     </table>
  56.                 </div>

Esto llama al fichero eliminarcliente3.php en donde procedo a borrar con esta consulta.

Código PHP:
Ver original
  1. <?php
  2.                 // Eliminar en funcion del codcliente que recibimos
  3.  
  4.                 $codcliente = $_POST['codcliente'];
  5.                 $borrar = $_POST['borrar'] ;
  6.  
  7. include('abre_conexion.php');
  8.  
  9. $sql2=" DELETE
  10.                         FROM clientes
  11.                         WHERE codcliente = '".$borrar."'
  12.                
  13.                     ";
  14.                    
  15.                        
  16.                 if(!mysql_query($sql2)) echo mysql_error();
  17.  
  18.                 include('cierra_conexion.php');

Bien. esto funciona pero solo con el ultimo codcliente seleccionado en el checkbox.

¿Cómo puedo hacer que se almacenen los checkbox seleccionados (los codcliente) para luego proceder a borrarlos?

Pienso que hay de por medio un foreach o for, para repetir x cada registro seleccionado. pero no se donde debo ponerlo.

Gracias a los que me puedan aportar su ayuda.!!

La referencia más o menos la he cogido de este tema que leí, pero no se bien como recorrer esto con el foreach o que debo modificar en mi código.

http://www.forosdelweb.com/f18/como-...-datos-678648/

Un saludo a todos!!!!
__________________
Puntuar +1 es buena forma de dar las gracias. :P
Your Time is limited, so don't waste it living someone else´s life.
Por: HackID1
  #2 (permalink)  
Antiguo 09/04/2014, 13:39
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Borrar registros seleccionados en checkbox de la basedatos

Para empezar, debes de tratar a los checkbox como lo hacen en el ejemplo que tomaste por referencia, es decir, como un array de checkbox. Para esto, al nombre de cada checkbox debes añadirle un [] con lo cual indicas que se trata de un array de checkbox. Luego, en el archivo PHP que recibe los datos, eliminas los datos seleccionados con la cláusula IN que permite buscar las coincidencias que hayan entre el campo indicado y un grupo de datos.

Código PHP:
Ver original
  1. $datos = "(" . implode(",", $_POST["borrar"]) . ")";
  2. $query = "DELETE FROM clientes WHERE codcliente IN $datos";

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 09/04/2014, 15:01
Avatar de HackID1  
Fecha de Ingreso: febrero-2013
Ubicación: En Update
Mensajes: 492
Antigüedad: 11 años, 2 meses
Puntos: 17
Respuesta: Borrar registros seleccionados en checkbox de la basedatos

:) Sii ha funcionado se borran ahora todos los checkeados!!!!.

Muchas muchas gracias amigo!! me estan ayudando mucho con este proyecto ;)
Gracias por aportar ayuda, espero pronto devolverla aquí en el Foro aportando.
SOlucionado.

Una pregunta antes de postearla, conoces algún metodo de poder escribir en una imagen que aparezca en una pagina html, es decir poder tener un campo de texto en el cual puedo poner encima de la imagen en la posición que desee un texto y luego guardar esa imagen modificada..
sea SUPERIOR (izquierda centro derecha), o INFERIOR (izquierda centro derecha) de la imagen.

Encontre esto, se ve avanzado,

http://boozox.net/php/guia-basica-pa...en-php-con-gd/
__________________
Puntuar +1 es buena forma de dar las gracias. :P
Your Time is limited, so don't waste it living someone else´s life.
Por: HackID1
  #4 (permalink)  
Antiguo 09/04/2014, 15:32
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Borrar registros seleccionados en checkbox de la basedatos

No me he metido mucho en ese tema, pero buscando un poco, encontré en la página oficial de PHP, una manera de colocar texto sobre una imagen, pudiendo manipular el color y tamaño del texto.

El enlace: http://www.php.net/manual/es/image.examples-png.php

Lo acabo de probar, es fácil de implementar y manipular, sobre todo porque solamente son 8 líneas de código. Ojo, esto se aplica en imágenes de tipo PNG.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 09/04/2014, 15:57
Avatar de HackID1  
Fecha de Ingreso: febrero-2013
Ubicación: En Update
Mensajes: 492
Antigüedad: 11 años, 2 meses
Puntos: 17
Respuesta: Borrar registros seleccionados en checkbox de la basedatos

Gracias lo estoy probando es un poco raro jeje el cambiar el color texto y posición, pero espero me sirva, y tendrías alguna idea sobre como:

Pedir ese texto por medio de un input de formulario (aqui sería enviado por GET ) y su posicion unicamente necesitaria esas 2 cosas.

Gracias por tu gran ayuda Alexis88.
__________________
Puntuar +1 es buena forma de dar las gracias. :P
Your Time is limited, so don't waste it living someone else´s life.
Por: HackID1
  #6 (permalink)  
Antiguo 09/04/2014, 16:13
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Borrar registros seleccionados en checkbox de la basedatos

Fácil. Utiliza un pequeño formulario en el que solamente estarán la imagen que se sube y el campo de texto, luego, recibes esa imagen en el mismo archivo o en otro para procesar los datos como se muestra en el enlace que te dejé.

Código HTML:
Ver original
  1. <form action = "procesar.php" method = "post" enctype = "multipart/form-data">
  2.     Imagen: <input type = "file" name = "imagen" />
  3.     Texto: <input type = "text" name = "texto" />
  4.     <input type = "submit" value = "Enviar" />
  5. </form>

Archivo procesar.php
Código PHP:
Ver original
  1. header("Content-type: image/png");
  2. $cadena = $_POST["texto"];
  3. $im     = imagecreatefrompng($_FILES["imagen"]["tmp_name"]);
  4. $color = imagecolorallocate($im, 220, 210, 60);
  5. $px     = (imagesx($im) - 7.5 * strlen($cadena)) / 2;
  6. imagestring($im, 3, $px, 9, $cadena, $color);
  7. imagepng($im);

Ojo, la imagen con el texto quedan temporalmente, pues como verás, en ninguna parte subo la imagen al servidor, sin embargo, puedes guardarla manualmente como cuando lo haces con una imagen que encuentras en internet y ahí sí queda con el texto impreso.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 12/04/2014, 15:28
Avatar de HackID1  
Fecha de Ingreso: febrero-2013
Ubicación: En Update
Mensajes: 492
Antigüedad: 11 años, 2 meses
Puntos: 17
Respuesta: Borrar registros seleccionados en checkbox de la basedatos

Muchas gracias alexis88 por tu gran ayuda, mañana probaré el código que me has dejado y veré si funciona y se adapta a lo que busco, que hoy ya esta un poco tarde aquí (España, aunque soy latino :) Colombia ) .


Y dices que guardar manualmente la imagen eso sería clic derecho guardar imagen como, no?, bueno eso probaré a cambiarlo para poner un botón y almacenarla en una bd, porque luego tengo que hacer una consulta y debe mostrarme la imagen que se ha modificado de cada cliente.

Un saludo!!!!
Mañana te comento muchisimas gracias !!!!
__________________
Puntuar +1 es buena forma de dar las gracias. :P
Your Time is limited, so don't waste it living someone else´s life.
Por: HackID1
  #8 (permalink)  
Antiguo 14/04/2014, 11:58
Avatar de HackID1  
Fecha de Ingreso: febrero-2013
Ubicación: En Update
Mensajes: 492
Antigüedad: 11 años, 2 meses
Puntos: 17
Respuesta: Borrar registros seleccionados en checkbox de la basedatos

Holaa Alexis88.
Bueno he estado haciendo diversas pruebas y mirando formas distintas de poder hacer lo que te comentaba con la imagen, (escribir en ella y visualizarlo), pues lo he conseguido usando el código que me aportaste y a parte buscando un poco en Internet para conseguir el objetivo que tenia en mente cambiando unas serie de cosas en el fichero procesar.php.

Objetivo: El cual era: Poder ver la imagen en el navegador y además almacenarla en BD (para posteriormente verla en un informe.).

Pues lo segundo no lo conseguí directamente, pero por ahora si he podido visualizarla y guardarla en una carpeta de mi ordenador con el diseño cambiado.

Creo que mejor si encuentro alguna otra duda relacionada con este tema, hago un tema nuevo y muestro todo el tema para la solución hasta donde la llevo.

Un saludo y gracias por tu ayuda me sirvió mucho.
__________________
Puntuar +1 es buena forma de dar las gracias. :P
Your Time is limited, so don't waste it living someone else´s life.
Por: HackID1

Etiquetas: checkbox, 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 01:04.