我有这个代码,允许用户只删除自己的主题。它正在工作,但如果用户不是发布主题的人,他仍然收到消息:主题已被删除,而他应该得到:你没有做这个主题。 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。)
答案 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.";
}
}