Foros del Web » Programando para Internet » PHP »

eliminar registros mostrados en una tablas que estan seleccionados por ckeckbox

Estas en el tema de eliminar registros mostrados en una tablas que estan seleccionados por ckeckbox en el foro de PHP en Foros del Web. amigos como el titulo del post lo indica, yo imprimo en una tabla html todos los registros de una tabla, el cual algunas veces (cuando ...
  #1 (permalink)  
Antiguo 27/04/2006, 09:04
Avatar de emilio21  
Fecha de Ingreso: enero-2005
Ubicación: Venezuela
Mensajes: 320
Antigüedad: 19 años, 3 meses
Puntos: 1
eliminar registros mostrados en una tablas que estan seleccionados por ckeckbox

amigos como el titulo del post lo indica, yo imprimo en una tabla html todos los registros de una tabla, el cual algunas veces (cuando se me presenta) tengo que eliminar varios registros. Entonces se me ocurrio hacerlo de esta manera, colocando un check por registro para seleccionar los que quiero eliminar.

quiesiera saber si alguien tiene un manual de como hacerlo para que me den el link, o un codigo, o sino me ayudan por aqui mismo...

gracias!!

saludos!!!
  #2 (permalink)  
Antiguo 27/04/2006, 09:06
 
Fecha de Ingreso: febrero-2005
Mensajes: 183
Antigüedad: 19 años, 2 meses
Puntos: 0
Oye si ya sabes como hacerlo por favor avisanos, a mi me interesa, es muy util para el cliente.
  #3 (permalink)  
Antiguo 27/04/2006, 09:12
Avatar de emilio21  
Fecha de Ingreso: enero-2005
Ubicación: Venezuela
Mensajes: 320
Antigüedad: 19 años, 3 meses
Puntos: 1
No Te Preocupes

se que es de utilidad... si lo consigo lo publico...

pero necesito ayuda!!!

no lo encuentro por ningun lado
  #4 (permalink)  
Antiguo 27/04/2006, 09:22
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 18 años
Puntos: 2
Una forma de hacerlo seria dandole a la propiedad value de cada checkbox el id del registro que representa:

Código PHP:
<?
$resultado 
mysql_query("SELECT id ....");
while (
$fila mysql_fetch_array(resultado)) {
    ....
   
$id $fila['id'];
   echo 
"<input type=\"checkbox\" name=\"tu_nombre[]\" value=\"$id\">";
   ....
}
?>
Y en la página donde envias el formulario:

Código PHP:
<?
foreach ($_POST['tu_nombre'] as $valor) {
$consulta "DELETE FROM tu_tabla WHERE id = $valor";
mysql_query($consulta);   
}
?>
Saludos.
  #5 (permalink)  
Antiguo 27/04/2006, 09:34
Avatar de emilio21  
Fecha de Ingreso: enero-2005
Ubicación: Venezuela
Mensajes: 320
Antigüedad: 19 años, 3 meses
Puntos: 1
me da el siguiente error

Warning: Invalid argument supplied for foreach() in D:\WWW\emilio\manager\eliminarsel.php on line 5

linea 5:
foreach ($_POST['m'] as $valor) {
  #6 (permalink)  
Antiguo 27/04/2006, 09:50
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 18 años
Puntos: 2
Ese error te esta diciendo que o bien $_POST['m'] no existe o no es un arreglo. ¿Probaste hacer un print_r($_POST) para saber si los datos estan llegando correctamente?.
Si publicas el código seria más fácil tratar de ayudarte.
Saludos.
  #7 (permalink)  
Antiguo 27/04/2006, 10:01
Avatar de emilio21  
Fecha de Ingreso: enero-2005
Ubicación: Venezuela
Mensajes: 320
Antigüedad: 19 años, 3 meses
Puntos: 1
ok...

hice lo del print_r($_POST) y me devuelve Array.

el codigo del form donde se encuantran los checkboxes es:

<form id="form1" name="f1" method="post" action="">
<table width="948" border="0" align="center">
<tr>
<td width="20" background="../images/barra2.png"><div align="center"><a href="javascript:sel()"><strong>X</strong></a></div></td>
<td width="330" height="24" background="../images/barra2.png"><span class="Estilo3">De:</span></td>
<td width="354" background="../images/barra2.png"><span class="Estilo3">Asunto:</span></td>
<td width="111" background="../images/barra2.png"><span class="Estilo1"><strong>Fecha:</strong></span></td>
<td width="111" background="../images/barra2.png"><span class="Estilo3">Hora:</span></td>
</tr>
<?
while($rsCat = mysql_fetch_array($rsCat_query)) {

if($rsCat["leido"]=="si") {
?>
<tr>
<td bgcolor="#E9E9E9"><div align="center">
<input type="checkbox" name="m[]" value="<? $rsCat["id"] ?>" />
</div></td>
<td bgcolor="#E9E9E9"><span class="Estilo1"><? echo "<a href=mensaje.php?id=$rsCat[id]&ck=$ck&user=$user>$rsCat[nombre]</a>";?></span></td>
<td bgcolor="#E9E9E9"><span class="Estilo1"><? echo $rsCat["asunto"] ?></span></td>
<td bgcolor="#E9E9E9"><span class="Estilo1"><? echo $rsCat["fecha"] ?></span></td>
<td bgcolor="#E9E9E9"><span class="Estilo1"><? echo $rsCat["hora"] ?></span></td>
</tr>
<?
}else{
?>
<tr>
<td bgcolor="#FFFF99"><div align="center">
<input type="checkbox" name="m[]" value="<? echo $rsCat["id"] ?>" />
</div></td>
<td bgcolor="#FFFF99"><span class="Estilo1"><? echo "<a href=mensaje.php?id=$rsCat[id]&ck=$ck&user=$user>$rsCat[nombre]</a>";?></span></td>
<td bgcolor="#FFFF99"><span class="Estilo1"><? echo $rsCat["asunto"] ?></span></td>
<td bgcolor="#FFFF99"><span class="Estilo1"><? echo $rsCat["fecha"] ?></span></td>
<td bgcolor="#FFFF99"><span class="Estilo1"><? echo $rsCat["hora"] ?></span></td>
</tr>
<?
}
}
?>
<tr>
<td colspan="5" background="../images/barra2.png">&nbsp;</td>
</tr>
</table>
</form>
<p align="right"><a href="javascript:seleccionar_todo()">Marcar todos</a> | <a href="javascript:deseleccionar_todo()">Desmarcar Todos </a>| <a href="eliminarsel.php">Eliminar Seleccionados</a> | <a href="logout.php">Cerrar Sesion</a></p>


y el codigo del que recibe el form es:

ya habiendo conectado con la base de datos
<?
foreach ($_POST['m'] as $valor) {
$sql = "DELETE FROM email WHERE id = $valor";
mysql_query($sql, $cn);
}
?>
  #8 (permalink)  
Antiguo 27/04/2006, 10:20
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 18 años
Puntos: 2
Cita:
Iniciado por emilio21
<?
foreach ($_POST['m'] as $valor) {
$sql = "DELETE FROM email WHERE id = $valor";
mysql_query($sql, $cn);
}
?>
Según entiendo, tenés un link a eliminarsel.php, en cuya página deberian eliminarse los datos seleccionados. Esto no va a suceder porque necesitas "enviar" los datos del formulario. Con un simple link, los datos no se envian, solo llama al url indicado en el link. Para enviar los datos, deberias indicar cual es la página que recibe y procesa los datos en el atributo "accion" de la etiqueta "form" y ademas incluir en el formulario un boton "enviar" mediante una etiqueta <input type="submit">.

pagina que genera los checkbox:
Código PHP:
<form id="form1" name="f1" method="post" action="eliminar.php">
<
table width="948" border="0" align="center">
....
<
input type="submit" value="enviar">
</
form>
... 
eliminar.php
Código PHP:
<?
foreach ($_POST['m'] as $valor) { 
$sql "DELETE FROM email WHERE id = $valor"
mysql_query($sql$cn); 
}
?>
Saludos.
  #9 (permalink)  
Antiguo 27/04/2006, 10:35
Avatar de emilio21  
Fecha de Ingreso: enero-2005
Ubicación: Venezuela
Mensajes: 320
Antigüedad: 19 años, 3 meses
Puntos: 1
ahora si!!!!!!!!!!1

gracias!!!



perfecto todo! ese esra el problema!
  #10 (permalink)  
Antiguo 27/04/2006, 10:39
Avatar de emilio21  
Fecha de Ingreso: enero-2005
Ubicación: Venezuela
Mensajes: 320
Antigüedad: 19 años, 3 meses
Puntos: 1
hay un pequeño error!

me elimina los que tengo seleccionados y los que no tambien!
  #11 (permalink)  
Antiguo 27/04/2006, 10:51
Avatar de emilio21  
Fecha de Ingreso: enero-2005
Ubicación: Venezuela
Mensajes: 320
Antigüedad: 19 años, 3 meses
Puntos: 1
Disculpa!!!!

EL ERROR FUE MIO

SALUDOS!!!

  #12 (permalink)  
Antiguo 27/04/2006, 11:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Tenían una pequeña FAQ al respecto:
http://www.forosdelweb.com/showthrea...710#post518710

Por si les sirve ... (explica otra forma usando SQL para "borrar" esos registros que seleccionamos).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 13:53.