取消链接()删除服务器上的图像以及SQL删除
问题描述:
我目前有一张表格,列出了我的页面上数据库中的所有“产品”。每个产品/列表旁边都有一个复选框,因此您可以一次删除多个产品。 我有删除功能与复选框很好,从数据库中删除选定的产品,但我似乎无法得到下半年的工作,这是需要进入名为“画廊”的服务器目录的部分,并删除属于已删除产品的图像。
取消链接()删除服务器上的图像以及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;
}
答
在传递字符串时,您需要执行$ deleteImgQuery和mysql_fetch_array获取资源作为参数。更改以下行..
//building query
$deleteImgQuery = "SELECT * FROM products WHERE `id` IN ($ids)";
$res = mysql_query($deleteImgQuery);
while ($deleteImage = mysql_fetch_array($res)) {
// do
}
这工作谢谢你!虽然我确实需要将“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