2017-06-29 21 views
0

私はこれらのスクリプトで1つのPHPスクリプトを書いた。私はテーブルからすべての画像データを削除するが、私も自分の画像フォルダからテーブルから削除された画像を削除したい。 sql self joinを使用してイメージを削除してください。私のデータベースから削除されたフォルダからイメージを削除するにはどうすればいいですか?PHPのローカルサーバフォルダから画像を削除

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "cribsuite"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
$sql = "delete t1 
from rr2s4_cma_images t1 JOIN rr2s4_cma_images t2 
on t1.matrix_unique_id = t2.matrix_unique_id 
and t1.ordering > t2.ordering"; 
//echo $sql; 
$vin = mysql_query($sql); 
//echo $sql; 
if ($conn->query($sql) === TRUE) { 
    echo "Record deleted successfully"; 
} else { 
    echo "Error deleting record: " . $conn->error; 
} 

$conn->close(); 


[![enter image description here][1]][1] 

?> 
+0

http://php.net/manual/en/function.unlink.php –

答えて

0

サーバーから削除するイメージファイル名の配列を作成する必要があります。これを行うには、次のようにします。

  1. ここで同じWHEREステートメントを使用してSELECTクエリを実行します。

  2. そのSELECTクエリの結果をループし、各イメージファイル名をファイル名の配列に追加します。配列の各要素のキーとして、データベースレコードの一意のIDを使用することをお勧めします。

  3. このアレイを構築したら、その配列をループしてデータベースからレコードを削除してから、サーバーからファイルを削除します。 PHPにネイティブなunlink()関数を使用して、ファイルの削除を行うことができます。

:あなたは、スケジュールに基づいて実行され、このスクリプトを作りたいと思っているならば、私は削除したり、エラーや警告が発生しません任意のファイルを追跡しておくことをお勧めします。これにより、今後発生する問題のトラブルシューティングに役立ちます。

私は役立つことを願っています。もしあなたがこれについて何らかの説明を必要としているのであれば教えてください。

+1

上記のコードで私のフォルダから画像クエリを削除することはできますか? –

+0

いいえ.DELETEクエリを実行しているため、削除されているレコードがわかりません。したがって、どのファイルを削除する必要があるのか​​わかりません。どのファイルを削除する必要があるかを知るためには、データベース内の何が削除されているのかを知る必要があります。その情報を取得するには、そのSELECTクエリを最初に実行する必要があります。 –

関連する問題