我目前有一張表格,列出了我的頁面上數據庫中的所有「產品」。每個產品/列表旁邊都有一個複選框,因此您可以一次刪除多個產品。 我有刪除功能與複選框很好,從數據庫中刪除選定的產品,但我似乎無法得到下半年的工作,這是需要進入名爲「畫廊」的服務器目錄的部分,並刪除屬於已刪除產品的圖像。
取消鏈接()刪除服務器上的圖像以及SQL刪除
當有人點擊刪除按鈕,它運行這段代碼:
//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;
}
}
它甚至不會做「回聲$文件」部分這讓我覺得心不是代碼的那一部分在運行所有。任何幫助?
更新的代碼交換之後:
//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;
}
這工作謝謝你!雖然我確實需要將「while($ deleteImage = mysql_fetch_array($ deleteImgQuery))」改爲「while($ deleteImage = mysql_fetch_array($ res))」 謝謝! – Catia 2012-02-16 17:56:08
哦..忘了編輯代碼。現在更新。感謝和快樂的編碼.. – monish 2012-02-16 18:50:23