Foros del Web » Programando para Internet » PHP »

Eliminar varios registros

Estas en el tema de Eliminar varios registros en el foro de PHP en Foros del Web. Llevo peleandome ya un buen rato y no entiendo que problema tengo. Este mismo codigo en una web me funciona perfecto y en otra no, ...
  #1 (permalink)  
Antiguo 03/03/2008, 06:43
 
Fecha de Ingreso: noviembre-2004
Mensajes: 133
Antigüedad: 19 años, 5 meses
Puntos: 0
Eliminar varios registros

Llevo peleandome ya un buen rato y no entiendo que problema tengo. Este mismo codigo en una web me funciona perfecto y en otra no, supongo que sera por la version de php. Bueno lo que quiero es eliminar varios registros de una tabla mediante checkbox.

En una pagina tengo el formuario que se muetra sin problemas, su codigo:

Código:
<form method="post" action="noticias_borrar.php" ONSUBMIT="return Comprobar()"> 
<?
for($i=0;$i<$NFilas;$i++)  {
$ResultQuery = mysql_fetch_array($IdConsulta);
$id=$ResultQuery["id"];
$titulo=$ResultQuery["titulo"];
$fecha=$ResultQuery["fecha"];
$fecha=cambiaf_a_normal($fecha);
?>
      <tr> 
        <td align="center"  ><font face="Arial, Helvetica, sans-serif"> 
          <input type="checkbox" name ="borrar[]" value="<?echo($id)?>">
          </font></td>
        <td align="center"  ><a href="noticias_modif.php?id=<?echo($id)?>"><?echo($titulo)?></a> 
        </td>
        <td align="center"><?echo($fecha)?></td>
      </tr>
<?}?>
      <tr> 
        <td align="center"  > 
          <input class=formx type="submit"  Value="Eliminar">
        </td>
        <td height="30" colspan="2" align="center" >
          <div align="left">
            &nbsp;
            <input class=formx type="button" name="Submit" value="Crear" onClick="location.href='noticias_alta.php'">
          </div></td>
      </tr>
</form>
  </table>
me lo muestra sin problemas, ahora el problema es el array..si pulsamos el boton eliminar nos envia a la siguiente pagina:

Código:
<?include "acceso.php";?><?
include "../bd.php";
$n = count ($borrar);
for ($j=0; $j<$n; $j++){
$valor= $borrar[$j];
for($i=0;$i<50;$i++){
$direc="../fotos/".$valor."_foto".$i."not.jpg";
if (file_exists($direc)) 
unlink($direc);
}
$Query = "DELETE FROM `tabla` WHERE `not_cod` = '$valor' ";
$IdConsulta = mysql_query($Query, $IdConexion);
$Query = "DELETE FROM `noticias` WHERE `id` = '$valor' ";
$IdConsulta = mysql_query($Query, $IdConexion);
}
header ("Location: noticias_lista.php");
?>
aqui es el problema al pasar el array con los ids de las noticias que quiero eliminar.

Alguien sabria porque no me funciona?? Como dije antes esta copiado de otra web que tengo y funciona...gracias!!
  #2 (permalink)  
Antiguo 03/03/2008, 07:59
Avatar de Evert  
Fecha de Ingreso: abril-2004
Ubicación: Cochabamba - Bolivia
Mensajes: 94
Antigüedad: 20 años
Puntos: 2
Re: Eliminar varios registros

hola
prueba con esto
$lista=$_POST['borrar'] y usas $lista en vez de $borrar
  #3 (permalink)  
Antiguo 03/03/2008, 11:30
 
Fecha de Ingreso: noviembre-2004
Mensajes: 133
Antigüedad: 19 años, 5 meses
Puntos: 0
Re: Eliminar varios registros

Es que yo intento mostar los valores con un echo y no me da nada si pongo:

echo $lista;

escribe en pantalla "Array" y si pongo:

echo $lista[1];

no escribe nada en pantalla es como si no pasara el array o no se....alguien me explica, gracias!
  #4 (permalink)  
Antiguo 03/03/2008, 11:53
 
Fecha de Ingreso: noviembre-2004
Mensajes: 133
Antigüedad: 19 años, 5 meses
Puntos: 0
Re: Eliminar varios registros

He descubirto que si en la linea:

<input type="checkbox" name ="borrar[]" value="<?echo($id)?>">

pongo:

<input type="checkbox" name ="borrar" value="<?echo($id)?>">

y en la otra pagina hago un echo si me muestra bien el contenido, asi que el problema es el array....sigo probando y efadandome haber si consigo algo..
  #5 (permalink)  
Antiguo 03/03/2008, 12:35
 
Fecha de Ingreso: noviembre-2004
Mensajes: 133
Antigüedad: 19 años, 5 meses
Puntos: 0
Re: Eliminar varios registros

Funciona!!!

Tenias razon evert!!Gracias!
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 08:14.