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>';
    }

データベースから結果が得られない場合( がないため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 に答える