Foros del Web » Programando para Internet » PHP »

Agilizar a la hora de eliminar registros

Estas en el tema de Agilizar a la hora de eliminar registros en el foro de PHP en Foros del Web. A la hora de hacer mis consultas muestro los datos y a ladito pongo un checkbox el cual va asociado por el id del registro. ...
  #1 (permalink)  
Antiguo 07/01/2011, 13:47
 
Fecha de Ingreso: diciembre-2010
Mensajes: 40
Antigüedad: 13 años, 11 meses
Puntos: 0
Agilizar a la hora de eliminar registros

A la hora de hacer mis consultas muestro los datos y a ladito pongo un checkbox el cual va asociado por el id del registro.

Código PHP:
<td><input type='checkbox' name='delete[]' value='".$row['id']."'></td
Despues agarro los que esten seleccionados y los borra.

Código PHP:
 <?php
       
        
if (count($_POST['delete'])) 

 include(
"scripts/conexion.php");

    foreach (
$_POST['delete'] as $id

  
$sql=mysql_query("DELETE FROM usuarios WHERE id=$id"); 
        
        echo 
"<script> alert (\"Usuario(s) eliminado(s)!\"); </script>";
         echo 
"<script language=Javascript> location.href=\"consultausuario.php\"; </script>";
        
        
    }
    }

?>

Bueno todo lo hace bien de hecho me tira un alert cuando lo hizo pero si selecciono mas de un usuario por ejemplo 2 me tira 2 alerts y asi siento que hace como si eliminara uno y vuelve a entrar a la bd y hace todo, etc y por eso dependiendo de cuantos usuarios son a borrar son los alerts que me da, mi pregunta es se podra hacer todo eso en uno solo??
  #2 (permalink)  
Antiguo 07/01/2011, 14:10
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 11 meses
Puntos: 51
Respuesta: Agilizar a la hora de eliminar registros

Usa un "flag". Sacas el echo de los scripts a fuera del for. Dentro del for usas una variabla booleana, si borras algo la ponés en true si no queda en false. Si el flag es true fuera del for ejecutas los echos.
  #3 (permalink)  
Antiguo 07/01/2011, 14:13
 
Fecha de Ingreso: diciembre-2010
Mensajes: 61
Antigüedad: 13 años, 11 meses
Puntos: 4
Respuesta: Agilizar a la hora de eliminar registros

Claro que se puede, piensalo, puedes hacerlo de varias maneras. En tu ejemplo por que no sacas fuera del foreach

echo "<script> alert (\"Usuario(s) eliminado(s)!\"); </script>";
echo "<script language=Javascript> location.href=\"consultausuario.php\"; </script>";

hasta que no acabe de eliminar todos los registros no se ejecutará ningún alert.
  #4 (permalink)  
Antiguo 07/01/2011, 16:37
 
Fecha de Ingreso: febrero-2005
Mensajes: 187
Antigüedad: 19 años, 9 meses
Puntos: 2
Respuesta: Agilizar a la hora de eliminar registros

Exactamente como dice Yop289, quedaria asi:


Código PHP:
<?php       
        
if (count($_POST['delete'])) 

    include(
"scripts/conexion.php");

    foreach (
$_POST['delete'] as $id
    { 
        
$sql=mysql_query("DELETE FROM usuarios WHERE id=$id");     
    } 
        echo 
"<script> alert (\"Usuario(s) eliminado(s)!\"); </script>";
        echo 
"<script language=Javascript> location.href=\"consultausuario.php\"; </script>";
}

?>
__________________
___________________________
Hosting y Dominios en colombia
Blog de Cubica

Última edición por jossmorenn; 07/01/2011 a las 16:40 Razón: Estaba mal indentado el codigo php
  #5 (permalink)  
Antiguo 07/01/2011, 16:52
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 11 meses
Puntos: 51
Respuesta: Agilizar a la hora de eliminar registros

Con esa solución, que no está mal, mostras siempre el alert aunque no elimines...

Etiquetas: eliminar, 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 22:36.