Foros del Web » Programando para Internet » PHP »

Problemas en al borrar varios datos

Estas en el tema de Problemas en al borrar varios datos en el foro de PHP en Foros del Web. Hola amigos he echo este siguiente script temgan en cuenta que uso php 4.0, lo que esta pasando es que envia los datos atraves de ...
  #1 (permalink)  
Antiguo 24/01/2004, 10:26
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 14 años, 1 mes
Puntos: 0
Problemas en al borrar varios datos

Hola amigos he echo este siguiente script temgan en cuenta que uso php 4.0, lo que esta pasando es que envia los datos atraves de checkbox pero borra solamente el ultimo dato les muestro la pagina

la que envia:



Código PHP:
$string "select id,nombre,email,inquietud from inquietudes order by id desc";
$resp=mysql_query($string,$link);
echo
"<form action='borrar_inquietud_final.php' method='post' name='borrar_inquietud' id='borrar_inquietud'>";
while(
$rows=mysql_fetch_array($resp)){
//$id=$rows[0];
echo $rows["id"];
echo
"<p align='center'>";
echo
"<table width='75%' border='2'>
          <tr> 
            <td width='51%'>Nombre:</td>
            <td width='49%'>"
.$rows["nombre"]."</td>
          </tr>
          <tr> 
            <td>E-Mail:</td>
            <td>"
.$rows["email"]."</td>
          </tr>
          <tr> 
            <td colspan='2'><div align='center'><b>Inquietud</b></div></td>
          </tr>
          <tr>
            <td colspan='2'>"
.$rows["inquietud"]."</td>
          </tr>
          <tr> 
            <td>Borrar</td>
            <td><input type='checkbox' name='seleccion[]' value="
.$rows["id"]."></td>
          </tr>
        </table></p><br>
        <hr><br>"
;
}
echo
"<p align='center'><table>
<tr> 
        <td><div align='center'> 
                <input name='enviar' type='submit' id='enviar' value='Borrar'>
              </div></td>
            <td><div align='center'>
                <input name='borrar' type='reset' id='borrar' value='Restablecer'>
              </div></td>
          </tr>
</table></p>"
;
echo
"</form>"
esta es la pagina que recoje y borra:

Código PHP:
require('seguridad.php');
require(
'connect.php');
while(list(, 
$id)=each($seleccion)){
    
$buscar="select id from inquietudes where id='$id'";
    
$resp=mysql_query($buscar,$link);
    
$rows=mysql_fetch_array($resp);
    
$string="delete from inquietudes where id='$rows[id]'";
if(
$resp=mysql_query($string,$link)){
$respuesta="Inquietudes Borradas";
header("location: borrar_inquietud.php?respuesta=$respuesta");
exit();
}else{
$respuesta="No se han podido borrar las inquietudes";
header("location: borrar_inquietud.php?respuesta=$respuesta");
exit();
}

Lo que suvede es lo iguiente por ejemplo si hubiera seleccionado varios datos a borrar con las siguientes id 1,2,3,4
son cuatro datos con sus valores de id a ser borrados pero la aplicación me esta borrando solo uno que es el de la id más alta y los otros no los borra.

ok les agradezco su ayuda

  #2 (permalink)  
Antiguo 24/01/2004, 13:35
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Tal como lo tienes, en cuanto borra una hace la redireccion. El bucle solo se ejecuta una vez.

Podrias eliminar todas las seleccionadas con una sola sentencia SQL, sin usar ningun bucle:
Código PHP:
require('seguridad.php');

require(
'connect.php');

if (
0==count($seleccion)) {
// no se ha seleccionado nada
  
$respuesta="No se ha seleccionadao nada";
  
header("location: borrar_inquietud.php?respuesta=$respuesta");

  exit();

}

$string="DELETE FROM inquietudes WHERE id IN (".implode(',',$seleccion).")";
if(
$resp=mysql_query($string,$link)){

$respuesta="Inquietudes Borradas";

header("location: borrar_inquietud.php?respuesta=$respuesta");

exit();

}else{

$respuesta="No se han podido borrar las inquietudes";

header("location: borrar_inquietud.php?respuesta=$respuesta");

exit();

}


Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 16:06.