mysqlクエリ構文に奇妙な問題があります。一定のポイントがあると、ユーザーに特定のランキングを表示するシステムを作りました。
たとえば、
1000以上のポイントがある場合、レベル1
3000以上のポイント、レベル2
5000以上のポイント、レベル3
8000以上のポイント、レベル4
9000以上のポイント、レベル5です。
MySQLテーブル構造:
テーブル名:ランク構造:pts、rankname
次のようにmysqlクエリ:
$result = mysql_query("SELECT * FROM rank WHERE pts <= '$userpts' ORDER BY pts DESC LIMIT 1")
or die(mysql_error());
$row = mysql_fetch_array($result);
if($row){
$rank = $row['rankname'];
echo $rank;
}
ただし、奇妙な問題が発生しました。ユーザーポイントが10,000ポイントを超えると、ランク名レベル5を取得する必要がありますが、代わりにランク名レベル1(1000〜2999ポイントのユーザーが取得)を取得
します。何が起こっているのかわからない場合は、正確にレベル5を取得する必要があります。 。
(ユーザーが8500ポイントを持っている場合、P / Sはレベル4を取得します。これは、10k未満のポイントがランク名を取得するために正常に機能することを意味します)
クエリロジックに何か問題がありますか?私は自分自身を混乱させました。