我有一个奇怪的问题。每次我在php中执行此查询时,即使查询为空,也会得到输出“Challenge”(如果为空,应该得到“emptyq”)当我在phpmyadmin中测试它时,一切都很好,查询应该是空的。我也试图回应$detectChallengeRes[0][1]
而一无所获。我无法找到问题,非常感谢任何帮助。
该脚本假设查看数据库并检查是否存在与当前userID相关的任何挑战,其基本上是检查用户是否已被另一个用户挑战的脚本,当前页面上的gameID与当前页面上的gameID相同在数据库中,用户尚未完成挑战($yourscore==0
)。
$detectChallengeRes = query("SELECT * FROM `AMCMS_challenges` WHERE `gameid`=$gameid AND `winner`=0 AND (`userkey1`=$user OR `userkey2`=$user);");
if($detectChallengeRes[0][1]!=$user && $detectChallengeRes[0][2]==$user) {
$yourscore = $detectChallengeRes[0][6]; //Check your score to see if you've already played
} elseif ($detectChallengeRes[0][2]!=$user && $detectChallengeRes[0][1]==$user) {
$yourscore = $detectChallengeRes[0][5]; //Check your score to see if you've already played
}
if ($detectChallengeRes!=NULL && $yourscore==0) {
echo 'Challenge';
} else {
echo 'emptyq';
}
表格结构:
CREATE TABLE IF NOT EXISTS `AMCMS_challenges` (
`primkey` int(11) NOT NULL auto_increment,
`userkey1` int(11) NOT NULL,
`userkey2` int(11) NOT NULL,
`gameid` int(11) NOT NULL,
`winner` int(11) NOT NULL,
`score1` int(11) NOT NULL,
`score2` int(11) NOT NULL,
PRIMARY KEY (`primkey`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
答案 0 :(得分:0)
$ detectChallengeRes将是boolean false或mysql结果资源。它永远不会为空。
答案 1 :(得分:0)
这可能无法解决您的问题,但看起来它显示的是以前的数据。把它放在你的脚本之前
unset($detectChallengeRes);
答案 2 :(得分:0)
在尝试处理查询之前测试查询返回的行数