从数据库中删除主题

时间:2015-06-19 16:18:24

标签: php mysql

我有这个代码,允许用户只删除自己的主题。它正在工作,但如果用户不是发布主题的人,他仍然收到消息:主题已被删除,而他应该得到:你没有做这个主题。 else语句没有运行。

if(isset($_SESSION['username']))
{
    $uid = $_SESSION['uid']; 
    $id=$_GET['id'];

    $check = mysql_query("SELECT * FROM topics WHERE id = '$id' AND topicCreator = '$uid'");
    if($check){
        $query1=mysql_query("delete FROM topics WHERE id='$id' AND topicCreator='$uid'");
        echo "<p>Topic has been successfully deleted. <a href='index.php'>Click here to return to home page.</a>";
    }
    else{
        echo "<p><b>ERROR: You didnt make this topic.";
    }
}

我不知道为什么else语句不会运行。

$ check是查看登录的用户是否是创建该主题的用户。

(PS:一旦有效,我会切换到mysqli。)

1 个答案:

答案 0 :(得分:1)

正如评论所示,您无法检查资源本身。尝试:

if(isset($_SESSION['username'])) {
    $uid = $_SESSION['uid']; 
    $id=$_GET['id'];
    $check = mysql_query("SELECT * FROM topics WHERE id = '$id' AND topicCreator = '$uid'");
    $count = mysql_num_rows($check);
    if($count) {
        // $count is greater than 1 hence TRUE
        $query1=mysql_query("delete FROM topics WHERE id='$id' AND topicCreator='$uid'");
        echo "<p>Topic has been successfully deleted. <a href='index.php'>Click here to return to home page.</a>";
    } else{
        // $count is 0 or FALSE - no rows returned
        echo "<p><b>ERROR: You didnt make this topic.";
    }
}