現在、私のページのデータベースにあるすべての「製品」をリストしたテーブルがあります。複数の商品を一度に削除できるように、各商品/リストの横にチェックボックスがあります。チェックボックスで削除機能がうまく機能し、選択した製品をデータベースから削除しましたが、「ギャラリー」という名前のサーバーディレクトリに移動する必要がある部分である後半が機能していないようです。削除された商品に属する画像を削除します。
誰かが削除ボタンをクリックすると、次のコードが実行されます。
//if form was submitted
if ($submit && $submit == "Delete") {
//escaping all of them for a MySQL query using array_map
array_map ('mysql_real_escape_string', $allCheckBoxId);
//implode will concatenate array values into a string divided by commas
$ids = implode(",", $allCheckBoxId);
//building query
$deleteQuery = "DELETE FROM products WHERE `id` IN ($ids)";
//running query
mysql_query($deleteQuery);
echo $ids;
//BELOW IS THE PART THAT WILL NOT WORK
//================================================
//building query
$deleteImgQuery = "SELECT * FROM products WHERE `id` IN ($ids)";
while ($deleteImage = mysql_fetch_array($deleteImgQuery)) {
$image_delete_id = $deleteImage['id'];
$image_delete_image = $deleteImage['image'];
$file= "../gallery/" . $image_delete_id . "/" . $image_delete_image;
unlink($file);
echo $file;
}
}
コードのその部分がまったく実行されていないと思わせる「echo $file」部分さえ実行しません。何か助けはありますか?
スワップ後の更新コード:
//if form was submitted
if ($submit && $submit == "Delete") {
//escaping all of them for a MySQL query using array_map
array_map ('mysql_real_escape_string', $allCheckBoxId);
//implode will concatenate array values into a string divided by commas
$ids = implode(",", $allCheckBoxId);
//building query
$deleteImgQuery = "SELECT * FROM products WHERE `id` IN ($ids)";
while ($deleteImage = mysql_fetch_array($deleteImgQuery)) {
$image_delete_id = $deleteImage['id'];
$image_delete_image = $deleteImage['image'];
$file= "../gallery/" . $image_delete_id . "/" . $image_delete_image;
unlink($file);
echo $file;
}
//building query
$deleteQuery = "DELETE FROM products WHERE `id` IN ($ids)";
//running query
mysql_query($deleteQuery);
echo $ids;
}