如何通过图像ID PHP从一组图像中删除一个图像

时间:2018-05-09 23:14:17

标签: php mysql image

我有一个系统,用户可以查看他们上传到他们创建的博客文章的所有图像(这是一个非wordpress网站)。从那里,我希望他们能够删除他们想要的任何图像。我有一切设置和工作,除了实际的删除功能。我正在使用循环显示这些图像。

我知道我需要通过他们分配的唯一img_id来删除图片,但我仍然坚持如何做到这一点。我尝试了几种不同的东西,这些都导致了错误。有了我下面的内容,我没有得到任何错误,功能只是没有工作我想要的。

当谈到PHP时,我仍然在弄湿自己的脚,如果有人能让我知道如何继续下去,我会很感激。提前谢谢。

以下是我在页面顶部的删除功能的代码:

<?php
if(isset($_POST['delete'])){
       $img_id = $_POST['delete_rec_id'];  
       $deletequery = "DELETE FROM images WHERE img_id=$img_id"; 
       $deleteresult = mysqli_query($db,$deletequery);
   }
?>

以下是html正文中图像显示位置的代码:

<?php 
  $imsql = "SELECT img_name, img_path, img_id 
            FROM images 
            WHERE post_id = '$id'";
  $q2 = $db->query($imsql);
     if($q2->num_rows>0){
       while ($imrow = $q2->fetch_object()){  
           echo '<img src="images/' . $imrow->img_name . '" width="100%" height="auto"/>';
           echo '<br><br>';
           echo '<form id="delete" method="post" action="">';
             echo '<input type="hidden" name="delete_rec_id" value="<?php print $img_id; ?>" /> ';
             echo '<input type="submit" name="delete" value="Delete Image" class="btn btn-default"/>  ';
           echo '</form>';
           echo '<br><br><br><br>';
       }
     }
  ?> 

以下是我页面顶部的整批代码,以防需要其他任何内容:

<?php
session_start();
$msg = "";

if(!isset($_GET['id'])){
  header('Location: modify.php');
  exit();
}else{
  $id = $_GET['id'];
}

include('../includes/db_connect.php');

if(!is_numeric($id)){
  header('Location: modify.php');
}

if(isset($_POST['delete'])){
       $img_id = $_POST['delete_rec_id'];  
       $deletequery = "DELETE FROM images WHERE img_id=$img_id"; 
       $deleteresult = mysqli_query($db,$deletequery);
    }

$sql = "SELECT * FROM post WHERE post_id='$id'";
$query = $db->query($sql);
if($query->num_rows !=1){
  header('Location: modify.php');
  exit();
}

?>

修改:我意识到我正在尝试在以下echo语句中运行<?php print ?>echo '<input type="hidden" name="delete_rec_id" value="<?php print $img_id; ?>" /> ';

我在想这就是问题所在。我如何在echo语句中编写print语句?

未来参考的答案:

<?php 
        $imsql = "SELECT img_name, img_path, img_id FROM images WHERE post_id = '$id'";
        $q2 = $db->query($imsql);
        if($q2->num_rows>0){
          while ($imrow = $q2->fetch_object()){  
            echo '<img src="images/' . $imrow->img_name . '" width="100%" height="auto"/>';
            echo '<br><br>';
            echo '<form id="delete" method="post" action="">';
              echo '<input type="hidden" name="delete_rec_id" value="' . $imrow->img_id . '" /> ';
              echo '<input type="submit" name="delete" value="Delete Image" class="btn btn-default"/>  ';
            echo '</form>';
            echo '<br><br><br><br>';
        }
      }
        ?>

1 个答案:

答案 0 :(得分:0)

仅供参考我不喜欢您使用此代码的方式,但这是我个人的偏好。

但你的修复相当简单(你只是没有解决数组) 变化

 echo '<input type="hidden" name="delete_rec_id" value="<?php print $img_id; ?>" /> ';

 echo '<input type="hidden" name="delete_rec_id" value="<?php print $imrow->img_id; ?>" /> ';