我有以下代码:
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))
应该在没有结果的情况下处理它。
我做错了什么以及如何修复它,当数据库中有分数时,它工作得很好。
非常感谢
发布于 2012-05-14 01:57:37
函数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
}
发布于 2012-05-14 01:55:43
要检查空的sql结果,请尝试
if(mysql_num_rows($result) > 0) { ... }
即使不返回任何结果,$highscore仍将作为空结果集填充。因此,"empty($highscore)“不会像你想要的那样工作。
编辑:为了以后的使用,请改用mysqli_num_rows!
https://stackoverflow.com/questions/10573918
复制相似问题