如何通过图片id php从一组图片中删除一个图片

bqucvtff  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(377)

我有一个系统,用户可以查看他们上传到自己创建的博客文章中的所有图片(这是一个非wordpress站点)。从那里,我希望他们能够删除他们想要的任何图像。我有一切设置和工作,除了实际的删除功能。我用一个循环来显示这些图像。
我知道我需要删除他们独特的图像 img_id 他们是被分配的,但我被困在如何做到这一点。我试过几种不同的方法,都会导致错误。就我下面的内容而言,我没有得到任何错误,函数只是没有按我所希望的方式工作。
我仍然在我的脚湿的过程中谈到php,如果有人能给我一个如何继续的想法,将不胜感激。提前谢谢。
下面是我在页面顶部的delete函数的代码:

<?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();
}

?>

编辑:我意识到我正在试着运行一个 <?php print ?> 在下面的echo语句中: 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>';
        }
      }
        ?>
ljsrvy3e

ljsrvy3e1#

我不喜欢你的代码,但这是我个人的喜好。
但是您的修复是相当容易的(您只是没有处理数组)更改

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; ?>" /> ';

相关问题