Связывание в unlink () с удалением sql - PullRequest
1 голос
/ 23 июня 2011

Я настроил простой цикл while, который возвращает все изображения в таблице вместе с соответствующим заголовком и описанием, чтобы пользователи могли соответствующим образом обновлять детали для каждого изображения.

Изображения возвращаются с флажком, который позволяет пользователю удалять изображения в соответствии с кодом php

if($_POST['doDelete'] == 'Delete') {

if(!empty($_POST['u'])) {
    foreach ($_POST['u'] as $uid) {
        $id = filter($uid);
        mysql_query("delete from landscape where id='$id'");
    }
 }
 $ret = $_SERVER['PHP_SELF'] . '?'.$_POST['query_str'];;

 header("Location: $ret");
 exit();
}

Как включить функцию unlink() на страницу, чтобы файл такжеудален с сервера?

Ответы [ 3 ]

1 голос
/ 23 июня 2011

Просто используйте Unlink() с входным циклом, как:

foreach ($_POST['u'] as $uid) {
    $id = filter($uid);
    if(mysql_query("delete from landscape where id='$id'")){
    unlink( '/path/to/images/' . $id);
    }
}

Я использовал If, потому что, если файл удалялся только из базы данных, он будет удален с сервера.Кроме того, если вы переместили файл в папку по имени файла, то сначала получите информацию о файле из базы данных по $id, а затем используйте

unlink( '/path/to/images/' . $file_name);

вместо

unlink( '/path/to/images/' . $id);

Надеюсьпоможет тебе.

0 голосов
/ 23 июня 2011

Если изображения названы в соответствии с идентификатором:

foreach ($_POST['u'] as $uid) {
    $id = filter($uid);
    mysql_query("delete from landscape where id='$id'");
    unlink( '/path/to/images/' . $id);
}

Обязательно правильно экранируйте $ id, прежде чем использовать его в своем запросе или в операторе unlink.

0 голосов
/ 23 июня 2011

Ну, где файлы хранятся на сервере? Как они хранятся? Просто вызовите unlink, указав путь к файлу, который ведет к месту хранения изображения.

...