我有一个系统,用户可以查看他们上传到他们创建的博客文章的所有图像(这是一个非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>';
}
}
?>
答案 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; ?>" /> ';