私のPHPアプリケーションには、大きいサムネイルと小さいサムネイルの3つのサイズの画像がある製品があります。各画像は個別のフォルダに保存されます。
画像-/galleryサムネイル-/gallery/bigthumbs小さなサムネイル-/gallery/ thumbs
各製品には固有のIDがあります。特定の製品のすべての画像のファイル名は同じです。製品の画像へのパスは、関連付けられた製品IDと同じIDでデータベースに保存されています。
各商品には複数の画像を含めることができますが、各商品のパスと画像の名前を保存するデータベースでは、すべての画像が同じID、つまり商品IDで保存されます。
したがって、ID 56の製品のデータベースに2つの画像がある場合、それらの画像は次のように保存されます。
ID-> 56、image1name、bigthumb1name、thumb1name ID-> 56、image2name、bigthumb2name、thumb2name
私がやろうとしているのは、削除される製品に関連するすべての画像を削除することです。私が書いたコードは次のとおりです。
$imagename_query = mysql_query("SELECT image FROM gallery WHERE id='$productid'", $connect);
$imagename_result = mysql_fetch_array($imagename_query);
foreach($imagename_result as $imagename) {
$bigimage = "../gallery/$imagename";
unlink($bigimage);
$picture = "../gallery/bigthumbs/$imagename";
unlink($picture);
$thumb = "../gallery/thumbs/$imagename";
unlink($thumb);
}
$gallery_query = mysql_query("DELETE FROM gallery WHERE id='$productid'", $connect);
$query = mysql_query("DELETE FROM products WHERE ID='$productid'", $connect);
問題は、上記のコードが削除する画像が1つだけであるということです。同じIDを持つ画像の数に違いはありません。
誰かが私がこれを理解するのを手伝ってもらえますか?
前もって感謝します。