我有以下代码:
if ($user) {
$highscore = mysql_result(mysql_query("SELECT Score FROM HighScore WHERE fbID = $user"),0);
if (empty($highscore)) { //if no result
echo '<div id="uhs">0</div>';
} else {
echo '<div id="uhs">'. $highscore .'</div>';
}
} else {
echo '<div id="uhs">0</div>';
}
当我没有得到db的结果时(因为没有Score
),它应该回显:echo '<div id="uhs">0</div>';
但它没有。相反,我得到错误:MySQL error: Unable to jump to row 0 on MySQL result index 8
。我认为使用:if (empty($highscore))
在没有结果时应该照顾它。
我做错了什么以及如何解决它,当数据库中有分数
时,它可以正常工作非常感谢
答案 0 :(得分:3)
要检查空的sql结果,请尝试
if(mysql_num_rows($result) > 0) { ... }
即使没有返回结果,$ highscore仍将填充为空结果集。因此,“空($ highscore)”无法按照你想要的方式运作。
修改:为了将来使用,请改用mysqli_num_rows!
答案 1 :(得分:3)
函数mysql_num_rows()
用于检查mysql_query
是否返回任何结果。
$highscore = mysql_query("SELECT Score FROM HighScore WHERE fbID = $user");
if (mysql_num_rows($highscore) == 0) {
// No result
} else {
// Show result
}