Foros del Web » Programando para Internet » PHP »

como puedo hacer esto?

Estas en el tema de como puedo hacer esto? en el foro de PHP en Foros del Web. Amigos. Tengo el sgte problema, que ahun no puedo solucionar. Necesito hacer una eiliminación selectiva de ciertos registros de una tabla (mysql). O sea que ...
  #1 (permalink)  
Antiguo 07/04/2003, 09:12
 
Fecha de Ingreso: febrero-2003
Ubicación: La serena
Mensajes: 144
Antigüedad: 14 años, 10 meses
Puntos: 0
como puedo hacer esto?

Amigos.
Tengo el sgte problema, que ahun no puedo solucionar. Necesito hacer una eiliminación selectiva de ciertos registros de una tabla (mysql). O sea que el usuario marque los registros a eliminar. Lo que hago es hacer un while ($row = mysql_fetch_row($result)) para mostrar los datos en una tabla- y dentro del ciclo despliego un checkbox en cada fila.

//despliego el campo
echo("<td width=11%> <b> $row[3] </b></td>");

//despliego el checkbox
echo("<td ><b> <INPUT TYPE=CHECKBOX name=check> </b></td>");

Ahora no se como podria consultar por cada checkbox para saber si esta afectado o no, y ademas a que registro correponde para hacer el delete. Para mi esto esta re-difil. Si algun Master me puede ayudar le agradeceria.

Gracias.
__________________
Hoy dia aprendí algo nuevo.
  #2 (permalink)  
Antiguo 07/04/2003, 09:18
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Te aconsejo llames al checkbox por el id del campo, entonces, usa:

if (isset($id)) {mysql_query("DELETE FROM tabla where id = $id");}
__________________
M a l d i t o F r i k i
  #3 (permalink)  
Antiguo 07/04/2003, 10:07
 
Fecha de Ingreso: febrero-2003
Ubicación: La serena
Mensajes: 144
Antigüedad: 14 años, 10 meses
Puntos: 0
pero no son solo uno

Pero es que puden ser varios los activados, ese es el problema
__________________
Hoy dia aprendí algo nuevo.
  #4 (permalink)  
Antiguo 07/04/2003, 10:14
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Pues usa un loop y mete la orden de borrar dentro.
__________________
M a l d i t o F r i k i
  #5 (permalink)  
Antiguo 07/04/2003, 10:34
 
Fecha de Ingreso: febrero-2003
Ubicación: La serena
Mensajes: 144
Antigüedad: 14 años, 10 meses
Puntos: 0
un loop por la cantidad de registros mostrados?
__________________
Hoy dia aprendí algo nuevo.
  #6 (permalink)  
Antiguo 07/04/2003, 10:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Lee este mensaje .. se explica como trabajar con checkbox ..

http://www.forosdelweb.com/showthrea...hreadid=103492

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 07/04/2003, 10:43
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Solución 2:

Formulario:
Código PHP:
<form name="borra" action="borra.php" method="post">
<? while ($row=mysql_fetch_array($result) {
 echo 
"<input type=\"Hidden\" name=\"existe[]\" value=\"$row[$id]\"><input type=\"Checkbox\" name=\"$row[id]\">$row[nombre]";
 } 
?>
 <input type="submit">
</form>
Procesador:
Código PHP:
for ($i=0$i<count($existe); $i++) {
 if (isset($
$existe[$i])){$mata=mysql_query("DELETE FROM tabla WHERE id = $$existe[$i]");}

NOTA: No está testeada, pueden haber algunos errores.
__________________
M a l d i t o F r i k i
  #8 (permalink)  
Antiguo 07/04/2003, 10:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El "procesador" con un bucle foreach puedes recorrer mas facimente el array para hacer el "loop" (bucle) y borrar uno por uno esos ID ..

Código PHP:
<?
// concetas a tu BD .. seleccionas tu Bd ..etc etc ..
foeach ($_POST['existe'] as $id){
$mata_sql=mysql_query("DELETE FROM tabla WHERE id = '$id'"); // la sentencia SQL ..
mysql_query($mata_sql);// hay que ejecutar el SQL xD
}
?>
Pero .. lo que propuse en el mensaje que puse antes el link .. Se hace en una sola consulta SQL sin ningun bucle ..
Código PHP:
<?
$mata_sql 
"delete from tabla where id IN(".implode(',',$_POST['existe']).")";
msyql_query($mata_sql);// se ejecuta una sola consulta a la BD ..
?>
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 07/04/2003 a las 11:01
  #9 (permalink)  
Antiguo 07/04/2003, 11:03
 
Fecha de Ingreso: febrero-2003
Ubicación: La serena
Mensajes: 144
Antigüedad: 14 años, 10 meses
Puntos: 0
Gracias Cluster
__________________
Hoy dia aprendí algo nuevo.
  #10 (permalink)  
Antiguo 07/04/2003, 11:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
De nada .. y gracias a Cain que también te colaboró xD

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 07/04/2003, 11:18
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
De nada también

Y buen truco el del implode, nunca me acuerdo de usar implode para convertir arrays y es muy útil.
__________________
M a l d i t o F r i k i
  #12 (permalink)  
Antiguo 07/04/2003, 11:36
 
Fecha de Ingreso: febrero-2003
Ubicación: La serena
Mensajes: 144
Antigüedad: 14 años, 10 meses
Puntos: 0
gracias a todos
__________________
Hoy dia aprendí algo nuevo.
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 21:05.