2017-02-01 11 views
0

Привет, У меня есть PHP-код, который проверяет, какие даты даты истекли и удалил их, один из столбцов - это имя изображения, которое было загружено на сервер через ftp, когда я удаляю все истекли Я также хочу удалить прикрепленные к ним изображения. Я читал о команде unlink на php, но я не вижу, как я могу применить его ко всем изображениям одновременно.удалить изображение из строки, срок действия которой истек.

У меня есть этот код, который я просто бродил, например, потому что я не знаю, как это сделать ..

 $sql = "DELETE FROM table WHERE date < NOW()"; 
mysqli_query($conn,$sql); 

$file = "public_html/images/".//Here should go the image name; 
unlink($file); 
if($sql) 
{ 
    echo "Records were deleted"; 
} 
?> 

Может кто-нибудь сказать мне, как я могу удалить все изображения, вложенные в удаленные строки?

+3

*** Вы должны войти в привычку [принимать ответы] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) ** *, которые помогут вам решить ваши проблемы. Вы будете зарабатывать очки, а другие будут рады помочь вам. –

+0

@JayBlanchard. Вы правы. Я начну делать это :) – user7415791

+0

Вам нужно будет выбрать все строки 'where date RiggsFolly

ответ

1

Если вы хотите удалить строки из таблицы в своей базе данных и одновременно удалить изображения из папки на сервере, где вы их сохраняете, вам придется обрабатывать каждый кандидат на удаление по одному, поэтому что вы можете получить имя файла из строки, чтобы выполнить удаление файла одновременно с удалением строки.

// connect to database 

$base_path = 'public_html/images/'; 
$del_count = 0; 

// SELECT all the delete candidates 
$sql = "SELECT id,image FROM table WHERE date < NOW()"; 
$sel4del = mysqli_query($conn,$sql); 
if (! $sel4del) { 
    echo $sel4del->error; 
    exit; 
} 

// prepare a delete by id 
$sql = 'DELETE FROM table WHERE id = ?'; 
$delrow = mysqli_prepare($conn,$sql); 
if (! $delrow) { 
    echo $delrow->error; 
    exit; 
} 

// Process all the delete candidates one by one 
while ($row = $sel4del->fetch_object()) { 
    // remove the file from disk 
    unlink($base_path . $row->image); 
    $del_count++; 

    // bind the current id to the prepared delete query 
    $delrow->bind_param('i', $row->id);  

    // execute the delete of this one row 
    $delrow->execute(); 
} 
echo 'images removed = ' . $del_count 
?> 
+0

Thakns! оно работает! – user7415791