MySQL错误:无法跳转到MySQL结果索引8上的第0行

时间:2012-05-13 17:52:55

标签: php mysql

我有以下代码:

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))在没有结果时应该照顾它。

我做错了什么以及如何解决它,当数据库中有分数

时,它可以正常工作

非常感谢

2 个答案:

答案 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
}