1

我有以下代码:

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。我认为 using:if (empty($highscore))在没有结果时应该照顾它。

我在做什么错以及如何解决它,当数据库中有分数时它工作正常

非常感谢

4

2 回答 2

3

要检查空 sql 结果,请尝试

if(mysql_num_rows($result) > 0) { ... }

即使没有返回结果,$highscore 仍将填充为空结果集。因此,“empty($highscore)”将无法按照您的意愿工作。

编辑:为了将来使用,请改用mysqli_num_rows

于 2012-05-13T17:55:43.430 回答
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
}
于 2012-05-13T17:57:36.877 回答