2017-02-01 16 views
0

ちょっと、日付の有効期限が切れているかどうかをチェックして削除するPHPコードがあります。列の1つが、期限切れのすべてを削除するとftp経由でサーバーにアップロードされた画像の名前ですレコード私はまた、それらに添付されている画像を削除したい。 私はphpのunlinkコマンドについて読んだことがありますが、私はそれを一度にすべての画像にどのように適用できるのか分かりません。期限切れの行から画像を削除する

は、私はちょうど私が実際にどのように行うのか分からない原因例えばrambledこのコードを...持って

 $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

date RiggsFolly

答えて

1

データベースのテーブルから行を削除すると同時に、保存しているサーバー上のフォルダからイメージを削除する場合は、削除候補を一度に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

関連する問題