我有一个系统,用户可以查看他们上传到自己创建的博客文章中的所有图片(这是一个非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>';
}
}
?>
1条答案
按热度按时间ljsrvy3e1#
我不喜欢你的代码,但这是我个人的喜好。
但是您的修复是相当容易的(您只是没有处理数组)更改
到