php取消关联权限,同时或

时间:2017-09-09 08:26:18

标签: php permissions

我不确定我做错了什么。我想在条件存在后删除特定文件夹中的图像。条件是限制超过八个图像或照片。 当我删除一个图像时它可以工作,但是一旦我添加了while或者条件,它就会给出拒绝访问错误。

下面是我的代码,它检查数据库中的条件,然后从文件夹中删除图像:

mysql_select_db($database_rentaguide, $rentaguide);
$query_overflow_images = sprintf("SELECT * FROM tbl_rentalimages WHERE sessionid = %s AND image_id > '$lastimageid'",
    GetSQLValueString($colname_overflow_images, "text"));
$overflow_images = mysql_query($query_overflow_images, $rentaguide) or die(mysql_error());
$row_overflow_images = mysql_fetch_assoc($overflow_images);
$totalRows_overflow_images = mysql_num_rows($overflow_images);

while ($row_overflow_images = mysql_fetch_assoc($overflow_images)); {
    $overflowpath = $row_overflow_images['image_url'];
    chmod("../".$overflowpath, 0777);
    unlink("../".$overflowpath);
}

图像的实际路径是 - > rentalimages/LqXtyVtzKm/architecture-1836070__340.jpg

$ lastimageid变量来自db连接,它获取第八个或最后一个记录的id,其中有超过八个图像。

请帮帮我。请

哦,是的,我在Windows 7 64位上运行xampp

2 个答案:

答案 0 :(得分:0)

您的代码中有一个拼写错误,就在while块的正文之前(编辑 - 忘记提及拼写错误是分号):

/* Empty loop, followed by a code block */
while ($row_overflow_images = mysql_fetch_assoc($overflow_images));
{
    /* $row_overflow_images is no longer an array */
    $overflowpath = $row_overflow_images['image_url'];
    chmod("../".$overflowpath, 0777);
    /* This line tries to delete the parent folder */
    unlink("../".$overflowpath);
}

答案 1 :(得分:0)

这是最终有用的......

mysql_select_db($database_rentaguide, $rentaguide);
$query_overflow_images = sprintf("SELECT * FROM tbl_rentalimages WHERE 
sessionid = %s AND image_id > '$lastimageid'", 
GetSQLValueString($colname_overflow_images, "text"));
$overflow_images = mysql_query($query_overflow_images, $rentaguide) or 
die(mysql_error());
$row_overflow_images = mysql_fetch_assoc($overflow_images);
$totalRows_overflow_images = mysql_num_rows($overflow_images);
do {
    $filepath = $row_overflow_images['image_url'];
    $imageid = $row_overflow_images['image_id'];

  $deleteSQL = sprintf("DELETE FROM tbl_rentalimages WHERE image_id = %s",
                       GetSQLValueString($imageid, "int"));

  mysql_select_db($database_rentaguide, $rentaguide);
  $Result1 = mysql_query($deleteSQL, $rentaguide) or die(mysql_error());
  unlink("../".$filepath);

}
while ($row_overflow_images = mysql_fetch_assoc($overflow_images));

}

P.S。我知道我应该移植到mysqli扩展,但我只是练习并试图了解更多。谢谢stachoverflow。你们真棒!