Как удалить файлы которых нет в бд mysql?

Discussion in 'PHP' started by Ridikh, 27 Dec 2009.

  1. Ridikh

    Ridikh Member

    Joined:
    11 Nov 2007
    Messages:
    69
    Likes Received:
    7
    Reputations:
    0
    del
     
    #1 Ridikh, 27 Dec 2009
    Last edited: 6 Jan 2010
  2. Deathdreams

    Deathdreams Elder - Старейшина

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    Бред какой-то.
    Мб я не так понял конечно, но какая связь с удалением записей с мускуля и удалением файлов?
     
  3. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Ridikh на php - http://php.net/opendir, http://php.net/readdir. Получаете список всех файлов, сравниваете со списком хороших - остальные удаляете.

    В дальнейшем удаляете по человечески, не только из базы, но и с диска
     
    _________________________
    1 person likes this.
  4. Osip

    Osip New Member

    Joined:
    20 Jan 2008
    Messages:
    14
    Likes Received:
    4
    Reputations:
    0
    впринципе если имеется информация о файлах в бд то 1м запросом с поощью NOT IN можно справиться
     
  5. POS_troi

    POS_troi Elder - Старейшина

    Joined:
    1 Dec 2006
    Messages:
    1,569
    Likes Received:
    466
    Reputations:
    108
    unlink() Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

    Вот и обрабатывай ошибку как положено

    PHP:
     if (isset($_GET['id_del'])) {
    $id_del=$_GET['id_del'];
    $file_del=db_query("SELECT file_name FROM files WHERE id=$id_del");

    if(
    unlink("files/".$file_del)){ // Для начала пытаемся удалить файл
    db_query("DELETE FROM files WHERE id=$id_del LIMIT 1");
    // И если все гуд то удаляем и запись в базе
    unset($id_del);
    }else{
    //Иначе во все горло орем о невозможности удалить файл
    echo "Ааааа.... млять не могу удалить эти чертовы байтики ис харда =( ";
    }
    }  

    + Как вообще попадают файлы на сервер? какие права на них стоят? ... вообщем мало инфы.

    Кстати отображение ошибок включи и будет больше счастья ini_set('error_reporting', E_ALL);

    да кстати - лучше не так "files/" а так "/files/" относительно корневого каталога
     
    #5 POS_troi, 27 Dec 2009
    Last edited: 27 Dec 2009
  6. Deathdreams

    Deathdreams Elder - Старейшина

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    PHP:

     
    if (isset($_GET['id_del'])) { 

    $id_del = (int)trim($_GET['id_del']); 

    $file_del db_query("SELECT `file_name` FROM `files` WHERE `id`='$id_del'"); 

    if(!
    $file_del){

                           die(
    'Mysql problem');

                                 }

    $array mysql_fetch_array($file_del);

    $filename $array['file_name'];

    if(
    db_query("DELETE FROM `files` WHERE `id`='$id_del' LIMIT 1") && unlink("files/".$filename)){

    die(
    'file deleted');

                                                   } else { die(
    'i cannot delete file :('); 

                                                                       }





     
    #6 Deathdreams, 27 Dec 2009
    Last edited: 27 Dec 2009
  7. Deathdreams

    Deathdreams Elder - Старейшина

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    Ковыряйся в мускуле.
    Попробуй сделать запрос без всяких посторонних функций.
    Подключись к мускулю и сделай обычный mysql_query, он тебе напишет в чём ошибка заключается.
     
  8. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Ridikh вы мазохист? Или насильник? За что вы так сношаете mysql?
     
    _________________________
  9. SoftLive

    SoftLive Member

    Joined:
    20 Dec 2009
    Messages:
    2
    Likes Received:
    16
    Reputations:
    0
    МБ просто переустанови Mysql.. И сотри всё в data
     
    3 people like this.
  10. Deathdreams

    Deathdreams Elder - Старейшина

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    SoftLive не ищет лёгких путей
     
  11. Deathdreams

    Deathdreams Elder - Старейшина

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    Не мускуль нужно переустанавливать, а руки выравнять надо.
     
Loading...
Similar Threads - удалить файлы mysql
  1. GAiN
    Replies:
    3
    Views:
    7,550