Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/06/2007, 23:33
edcala
 
Fecha de Ingreso: diciembre-2004
Mensajes: 207
Antigüedad: 19 años, 4 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.