允许用户删除自己的评论PHP

时间:2014-01-09 12:41:00

标签: php mysqli comments sql-delete

我想允许我的用户通过链接从数据库中删除他们自己的评论。但是我遇到的问题是我的评论没有删除,我没有收到任何错误消息。

这是我的“salonpage.php”中“deletepost.php”页面的链接:

if ($row['userID'] == $_SESSION['userID']){
$str_comments .=" <p><a href='deletepost.php?pID=".$row['ID']."&salonid=$salonid'>Delete comment</a>";

这是我的“deletepost.php”页面中的代码:

<?php
  require_once("checklog.php");
  require_once("nifunctions.php");

  $postID = trim($_GET['pID']);

  if ($postID != '' && is_numeric($postID))
  {
      if (!$db_server)
       {
        die("unable to connect to database: ".mysqli_connect_error($db_server));
       }
       else
       {
         $_GET['salonid'] and ($_GET['salonid'] != '');
         $salonid = clean_string($db_server, $_GET['salonid']);

         mysqli_select_db($db_server, $db_database) or die ("couldnt find database");

         //Delete post from comments
         $query= "DELETE FROM comments WHERE ID=$postID";
         mysqli_query($db_server,$query) or 
         die("comment delete failed" . mysqli_error($db_server));

         //redirect back to index page
         header("Location: salonpage.php?salonid=$salonid");

       }
       //db close
       mysqli_close($db_server);
   }
?>

2 个答案:

答案 0 :(得分:1)

通过更改我的查询来修复此问题:

//Print out existing comment
$query = "SELECT * FROM comments JOIN users ON comments.userID = users.ID WHERE salonID=$salonid";

为:

//Print out existing comment
$query = "SELECT comments.*, users.Username FROM comments JOIN users ON comments.userID = users.ID WHERE salonID=$salonid"; 

感谢您的帮助!

答案 1 :(得分:0)

检查$_GET['pID']值以确保它已设置。

如果没有,您的查询将不会被执行。你的第一个if会返回false,你最后会关闭你的连接。

如果没有,如果查询将在没有错误的情况下执行,但找不到任何要删除的寄存器。