我有以下代码:
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))
应该照顾它。
我做错了什么以及如何解决它,当数据库中有分数时它可以正常工作
非常感谢
函数 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
}
要检查空的 sql 结果,请尝试
if(mysql_num_rows($result) > 0) { ... }
即使未返回任何结果,$highscore仍将填充为空结果集。因此,"空($highscore)"将无法按照您想要的方式工作。
编辑:为了将来使用,请使用mysqli_num_rows代替!