Php-Mysql。让玩家进入一个数组并按时间排序

Php-Mysql。让玩家进入一个数组并按时间排序,php,mysql,Php,Mysql,我试图创建一个数组,然后根据mysql\u查询按时间对对象进行排序 情况就是这样: 当玩家完成回合后,我更新数据库。我将数据库变量“lastTurn”设置为当前时间 $nickname = $_POST['name']; $lastTurn = date(); $myTurn = NO; $query ... update query 现在我需要找出下一个玩家是谁,并将回合发送给他/她 $query = "SELECT * FROM active_users_table WHER

我试图创建一个数组,然后根据mysql\u查询按时间对对象进行排序

情况就是这样:

  • 当玩家完成回合后,我更新数据库。我将数据库变量“lastTurn”设置为当前时间

     $nickname = $_POST['name'];
     $lastTurn = date();
     $myTurn = NO; 
     $query ... update query
    
  • 现在我需要找出下一个玩家是谁,并将回合发送给他/她

     $query = "SELECT * FROM active_users_table WHERE match_id='12345'
    
  • 这将提供与当前游戏相关的所有玩家

    但现在我不知道如何继续。 我想把所有玩家放到一个数组中,然后在turnDate之后进行排序,看看下一个玩家是谁。就像扑克牌游戏。我还需要检查数据库中的另一个变量“havePlayerLost”,看看他是否仍然活跃在游戏中。如果他输了,那么找下一个活跃的球员,并且拥有最高的出场日期

    非常感谢您的建议


    谢谢

    我建议您让MySQL/SQL做比现在多一点的工作。用于更新播放机的SQL查询也可以包含正确格式的当前日期/时间

    player_lastTurn = NOW()
    
    在对数组进行排序时,我建议您也让MySQL来处理这个问题:

    ORDER BY player_lastTurn ASC
    
    升序意味着它将为您提供整个数据库中该cellname的最早日期时间

    当您使用这些查询的结果并使用它构建数组时,您的数组将自动按正确的顺序排列

    这同样适用于“丢失的玩家”,因此在不加载阵列时,您会自动不将其包含在阵列中。

    尝试此查询

    $query = "SELECT * FROM active_users_table WHERE match_id='12345'
              and status !='havePlayerLost'
              order by  lastTurn Asc
    

    要对玩家进行排序,请尝试更改添加“ORDER BY turnDate ASC”的查询

     $query = "SELECT * FROM active_users_table WHERE match_id='12345' ORDER BY turnDate ASC"
    
    对于变量“havePlayerLost”,我认为您也可以像这样更改查询,添加“havePlayerLost=false”

    $query = "SELECT * FROM active_users_table WHERE match_id='12345' AND havePlayerLost = false ORDER BY turnDate ASC"