PHP/MYSQL图像删除按钮

PHP/MYSQL图像删除按钮,php,mysql,Php,Mysql,你好,我还是一个初学者,但我有一个uni项目,我必须完成。我必须做一个php/mysql图像库,我必须在每个图像上添加一个删除按钮,当点击它时,它需要从页面和数据库中删除图像。我查遍了所有地方,但我不确定如何准确地编写代码以删除图像,我已经创建了按钮,并将其链接到delete-image.php。 有什么建议吗 view-album.php <?php include 'connection.php'; if (isset($_GET['album_id'])) { $album_id =

你好,我还是一个初学者,但我有一个uni项目,我必须完成。我必须做一个php/mysql图像库,我必须在每个图像上添加一个删除按钮,当点击它时,它需要从页面和数据库中删除图像。我查遍了所有地方,但我不确定如何准确地编写代码以删除图像,我已经创建了按钮,并将其链接到delete-image.php。 有什么建议吗

view-album.php

<?php
include 'connection.php';
if (isset($_GET['album_id'])) {
$album_id = $_GET['album_id'];
$get_album = $mysqli->query("SELECT * FROM gallery_albums WHERE album_id = $album_id");
$album_data = $get_album->fetch_assoc();
} else {
header("Location: index.php");
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title><?php echo $album_data['album_name'] ?></title>
</head>
<body>
<?php
$photo_count = $mysqli->query("SELECT * FROM gallery_photos WHERE album_id = $album_id");
?>
<a href="index.php">Home</a> | <?php echo $album_data['album_name'] ?> (<?php echo $photo_count->num_rows; ?>)<br><br>


<form method="post" action="upload-photo.php?album_id=<?php echo $album_id ?>" enctype="multipart/form-data">
<label>Add photo to this album:</label><br>
<input type="file" name="photo" /> <input type="submit" name="upload-photo" value="Upload" />
</form>


<?php
if (isset($_GET['upload_action'])) {
if ($_GET['upload_action'] == "success") { ?>
<br><br>Photo successfully added to this album!<br><br>
<?php }
}
?>
<?php
$photos = $mysqli->query("SELECT * FROM gallery_photos WHERE album_id = $album_id");
while($photo_data = $photos->fetch_assoc()) { ?>
<img src="<?php echo $photo_data['photo_link'] ?>" width="200px" height="200px" />

<form method="POST" action="delete-image.php">
    <button name='delete'>Delete file </button>
</form>

<?php }
?>
</body>
</html>

|()

(1.)首先,您必须为每个按钮标记创建行
id
的输入隐藏字段

(2.)通过
$\u POST['']从delete_image.php中的隐藏字段获取
id
POST方法

(3.)然后从该
id
中删除图像

<?php
    $photos = $mysqli->query("SELECT * FROM gallery_photos WHERE album_id = $album_id");
    while($photo_data = $photos->fetch_assoc()) { 
             $album_id = $photo_data['album_id'];  
    ?>
    <img src="<?php echo $photo_data['photo_link']; ?>" width="200px" height="200px" />
    
    <form method="POST" action="delete-image.php">
         <input type="hidden" name="delete" value="$album_id">   // hidden input field with id.
        <button name='delete'>Delete file </button>
    </form>
    
    <?php }
    ?>

“width=“200px”height=“200px”/>
//id为的隐藏输入字段。
删除文件
删除image.php

<?php
include 'connection.php';

$idget = $_POST['delete'];  // get here hidden id by POST method.
$photosDelete = $mysqli->query("DELETE FROM gallery_photos WHERE album_id = $idget");

?>

注意:-有关
隐藏字段的更多信息,请参见:-


1)您的删除表单需要一个隐藏字段,其中包含要从数据库中删除的行的ID。2)在PHP中,您从$\u POST读取该值,3)编写SQL删除查询以删除该行,4)使用unlink函数删除路径(在删除查询之前,您可能需要选择,以便再次从数据库中获取准确的文件路径)您的问题是否已解决?@kam1kaze3您遇到了什么问题???@kam1kaze3您是否已使用按钮成功通过隐藏行id。是的,我完全按照您所说的做了,看起来与下面的答案完全相同,我创建了隐藏id并更新了delete-image.php,但当我单击删除按钮时,它只是将我重定向到delete-image.php,没有其他任何事情发生,图像在数据库中和页面上都没有被删除,我认为我应该使用unlink函数从页面中删除图像,但我不确定具体如何删除。我用隐藏id更新了代码,但我仍然无法删除它们,当我单击“删除文件”按钮时,没有任何事情发生
<?php
include 'connection.php';

$idget = $_POST['delete'];  // get here hidden id by POST method.
$photosDelete = $mysqli->query("DELETE FROM gallery_photos WHERE album_id = $idget");

?>