好的,底线是。我的网站上有一个图片库。我可以上传和检索图像到我的Mysqli数据库。多个图像被放置在占位符div中,其显示图像周围的小框和图像的名称。我的每个图像都有一个删除功能,可以使用PHP取消链接。但每当我删除图像时,图像的框和名称仍然会出现。
有没有办法不仅取消链接图像,而是整个div,所以占位符将完全删除?或者,有没有办法将div放在变量中,因为我知道如何取消链接包含多个文件的变量。这是我的代码
div被称为" media"。
<ul class="media-list">
<?php
include "config.php"; //database connection
$res = $mysqli->query("SELECT * FROM upload_data");
while ($row = $res->fetch_assoc()):
?>
<div class="media">
<a class="media-left" href="#">
<!-- <img src="upload/<?php echo $row['file_name'] ?>" alt="<?php echo $row['file_name'] ?>"> -->
</a>
<div class="img"><?php if (isset($_SESSION['email']))
{
echo '<a href="delete.php?id=&nm=<?php echo $row[\'file_name\'] ?>">Delete</a>';} ?>
<a target="_blank" href="javascript:popImage('upload/<?php echo $row['file_name'] ?>','<?php echo $row['file_name'] ?>')">
<img width="300" height="200" src="upload/<?php echo $row['file_name'] ?>" alt="<?php echo $row['file_name'] ?>">
</a>
</div>
</div>
<?php
endwhile;
?>
如果您想知道,还可以使用取消链接代码:
<?php
include "config.php";
if(isset($_GET['id'])):
$hap = unlink('upload/'.$_GET['nm']);
if($hap){
$stmt = $mysqli->prepare("DELETE FROM upload_data WHERE id_upload=?");
$stmt->bind_param('s', $id);
$id = $_GET['id'];
if($stmt->execute()):
echo "<script>location.href='gallery.php'</script>";
else:
echo "<script>alert('".$stmt->error."')</script>";
endif;
} else{
echo "<script>alert('No Delete File From Harddisk')</script>";
echo "<script>location.href='gallery.php'</script>";
}
endif;
?>
答案 0 :(得分:0)
文件被正确删除。
但是您将错误的参数传递给SQL查询。 $id
$stmt->bind_param('s', $id);
假设id_upload
列是整数。用以下代码替换:
$stmt->bind_param('i', (int)$_GET['id']);