提问者:小点点

PHP MySql游戏得分页面


分数页面的逻辑是什么:

>

  • 所有玩家中的当前用户顺序(如#115):MySql为所有用户选择按分数排序,然后检查当前用户在哪里?

    更好的两个分数:获取当前用户,然后选择Limit2,其中score>“$CurrentUserScore”?

    减两分:获取当前用户,然后选择LIMIT 2,其中得分<“$CurrentUserScore”?

    我觉得这很难缠,还有别的办法吗?


  • 共1个答案

    匿名用户

    备选案文1:

    从score>=$user_score的用户中选择计数(1)作为计数

    这应该能给你这个人的级别。如果您担心多个人的得分与当前用户相同,请将>=更改为>,那么您可以在结果中添加1。

    备选案文2和3:

    从score>$user_score按分数排序asc限制2的用户中选择*

    从得分<$user_score顺序按分数desc限制2的用户中选择*

    或者,您可以在一个查询中获得所有5个(2在前,2在后和当前用户),一旦您有了第一个查询的排名:

    $start = $user_rank - 2;
    $query = "select * from users order by score asc limit {$start},5";
    

    或者如果您不希望包含当前用户或与当前用户得分相同的任何人,您可以执行以下操作:

    $start = $user_rank - 2;
    $query = "select * from users where score!=$user_score order by score asc limit {$start},4";