Foros del Web » Programando para Internet » PHP »

Borrado Multiple

Estas en el tema de Borrado Multiple en el foro de PHP en Foros del Web. Hola a todos. Resulta que tengo una base de datos en la cual se registra datos como: tipo de archivo, titulo, ubicación, entre otros; de ...
  #1 (permalink)  
Antiguo 16/06/2007, 23:33
 
Fecha de Ingreso: diciembre-2004
Mensajes: 207
Antigüedad: 19 años, 10 meses
Puntos: 0
Borrado Multiple

Hola a todos.
Resulta que tengo una base de datos en la cual se registra datos como: tipo de archivo, titulo, ubicación, entre otros; de archivos que están en carpetas dentro del servidor. Mediante una página puedo modificar o eliminar esos registros y los archivos a la cual hace referencia.
El hecho es que eliminar uno por uno, es muy engorroso, pues trabajo con muchos archivos, por lo cual, buscando en encontré como hacer un borrado múltiple mediante casillas de verificación, lo cual me funciona para borrar los registros de la base de datos mas no asó los archivos a la cual hace referencia.

El código para borrar uno por uno es el siguiente:
Código PHP:
<?php
$archivoID
=$_POST['archivoID'];
$archTipo=$_POST['archTipo'];
$exten=$_POST['exten'];
$maypim=$_POST['maypim'];

//---Inicio del borrado del archivo
if(unlink($maypim.'/'.$archivoID))
    {
    
//---Inicio del borrado de datos de la base datos
    
$consulta="DELETE FROM archivos WHERE archivoID='$archivoID' AND archTipo='$archTipo'";
    
$resultado=mysql_query($consulta,$con) or die("Error al ELIMINAR datos, referente al bloque de contenidos de ARCHIVOS");
    
//---Fin del borrado del archivo
    
$msg 'Se ha eliminado el archivo';
    }
else { 
$msg 'Imposible eliminar el archivo, compruebe que el fichero exista y que tenga permiso XXX adecuados.'; }
//---Fin del borrado de datos de la base datos

?>
<p align="center"><b><font size="3"><?=$msg?></font></b></p>

<p align="center"><a href="pcontrol.php?seccion=dba_selec_user">Panel de Control</a></p>
Ahora, el archivo de borrado múltiple es el siguiente y solo funciona para borrar los registros de la base de datos, mas no así los archivos de las carpetas a las cuales hace referencia. ¿Cómo haría para borrar ambos, pues para borrar los archivos uso "unlink" y que este funcione en un borrado múltiple?
Código PHP:
<?php
if(!empty($_POST['reg'])) {
$registros array_keys($_POST['reg']);
$registros implode("','"$registros);
$registros "'".$registros."'";

  
$deleteSQL sprintf("DELETE FROM archivos WHERE archivoID IN ($registros)");

  
mysql_select_db($database_imata$imata);
  
$Result1 mysql_query($deleteSQL$imata) or die(mysql_error());

  
$deleteGoTo "pcontrol.php?seccion=dba_wMasDeleteFile01";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$deleteGoTo .= (strpos($deleteGoTo'?')) ? "&" "?";
    
$deleteGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$deleteGoTo));
}else{
echo 
"Hubo un error, no se ha seleccionado ningun registro";
}
?>
Gracias por anticipado por las respuestas.
  #2 (permalink)  
Antiguo 17/06/2007, 10:53
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 20 años
Puntos: 4
Re: Borrado Multiple

Podrias poner el unlink, dentro de un for o while, es decir primero debes saber que archivos vas a borrar, en un array por ejemplo, luego con el for o while lo que decidas, haces el rrecorrido de la carpeta y vas borrando segun el contenido del array... ojala funcione no lo he probado
  #3 (permalink)  
Antiguo 18/06/2007, 14:23
 
Fecha de Ingreso: diciembre-2004
Mensajes: 207
Antigüedad: 19 años, 10 meses
Puntos: 0
Re: Borrado Multiple

Gracias Bellenger por responder.
Alguna otra salida, alguien que pueda dar alguna otra solución?

Gracias.
  #4 (permalink)  
Antiguo 18/06/2007, 14:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Re: Borrado Multiple

Tendrias que primero checar todos los registros que vas a borrar y obtener el lugar donde estan (con un SELECT) despues ciclar por cada archivo e irlos borrando y por ultimo borrar las entradas de la base de datos.

Saludos.
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 12:51.