Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 19-12-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Lo primero es saber cómo hacer el formulario html. La columna en cuestión estará formada por campos de tipo checkbox, a los cuales conviene darles nombres de tipo arreglo:

Código:
<tr>
  <td><input type='checkbox' name='borrar[163]'></td> ...
</tr>
<tr>
  <td><input type='checkbox' name='borrar[164]'></td> ...
</tr>
<tr>
  <td><input type='checkbox' name='borrar[1]'></td> ...
</tr>
<tr>
  <td><input type='checkbox' name='borrar[2]'></td> ...
</tr>
<tr>
  <td><input type='checkbox' name='borrar[3]'></td> ...
</tr>
<tr>
  <td><input type='checkbox' name='borrar[4]'></td> ...
</tr>
<tr>
  <td><input type='checkbox' name='borrar[26]'></td> ...
</tr>
El 'índice' del arreglo correspondería al código que, supongo, identifica de manera única a la fila (me imagino que es la llave primaria de una tabla).

En HTML, un checkbox sólo se manda si está marcado. Es decir, no es que se mande true o false dependiendo de si está marcado o no, se manda (por defecto) 'on' en caso de que esté marcado y no se manda nada en caso de que no esté marcado.

Cuando nombras los checkbox como te indico, PHP los recibe también en un arreglo, pero, por lo dicho antes, sólo recibirá aquellos elementos que estén marcados. Así, suponiendo que el usuario marca el 164, el 2 y el 3, PHP recibirá

Código:
$borrar[163] = 'on'
$borrar[1] = 'on'
$borrar[2] = 'on'
y nada más.

Bueno, miento un poco. El arreglo $borrar no lo recibe drectamente sino que debes recuperarlo de la variable $_POST:

Código PHP:
$borrar $_POST['borrar']; 
Entonces, para saber cuáles elementos se marcaron para borrar, basta saber cuales índices vienen en el arreglo. Lo más sencillo será procesarlos con algo como:

Código PHP:
foreach (array_keys($_POST['borrar']) as $codigo)
{
  ...

array_keys toma nada más los índices, y el foreach .. as hace un ciclo que te da, en cada vuelta, el índice en turno en la variable $codigo. Con ello puedes aprovechar para construir la consulta DELETE tal como te han indicado antes.

Ahora, en este caso, y aprovechando las magníficas funciones con que cuenta PHP para el manejo de arreglos, podemos incluso ahorrarnos el ciclo.

La función implode, convierte un arreglo en una cadena de caracteres formada por todos sus elementos separados por el "pegamento" que indiquemos. Así,

Código PHP:
implode(','array_keys($_POST)) 
devolverá una lista separada por comas de los códigos de las filas que se marcaron para borrar. Pero eso es justo lo que necesitas para el DELETE:

Código PHP:
$codigos implode(','array_keys($_POST));
$sql "DELETE FROM tabla where codigo in ($codigos)"
Lo que faltaría aquí es la construcción del formulario, porque es de suponerse que justamente lo obtienes de una consulta y debes escribirlo por código php dinámicamente, pero eso ya te queda de tarea

//Saludos

Última edición por roman fecha: 19-12-2006 a las 07:01:00.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
SMDBGRID y la columna check ingel Varios 2 11-07-2006 14:28:56
Como procesar la excepción de violación de clave? ReyQ MS SQL Server 3 16-09-2005 10:15:55
como hacer que una columna del dbgrid contenga un valor de un TEdit en cada celda Shidalis OOP 2 02-08-2005 12:05:35
Procesar un Txt delimitado con TAB antes de Importar a un Database dago_Ariza Conexión con bases de datos 3 13-05-2004 09:36:30
Procesar Archivos de Texto delimitados por TAB para luego import en Access dago_Ariza Conexión con bases de datos 1 13-05-2004 09:24:39


La franja horaria es GMT +2. Ahora son las 04:15:38.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi