gpt4 book ai didi

php - 根据MySQL数据库中的积分获取用户排名

转载 作者:行者123 更新时间:2023-11-29 13:17:30 25 4
gpt4 key购买 nike

我的 codeigniter 应用程序模型中有一个函数,它返回按点降序排列的行列表。这样做是为了获取具有最高点的行。

public function top_points()
{
$this->db->order_by('points', 'desc');
$query=$this->db->get('player', 50);
$data = $query->result_array();
return $data;
}

这可以很好地返回最高 50 分的数据。

但是,我想在我正在查询的 Player 表中找到特定玩家的位置/排名。我想通过 id 找到特定的玩家。

public function get_player_rank($player_id)
{
$this->db->where('player_id', $palyer_id);
$this->db->order_by('points', 'desc');
$query=$this->db->get('player');
$data = $query->result_array();
return $data;
}

我想使用类似的方法来获取由 $id 指定的玩家的位置。就像根据他获得的积分进行排名一样。

我如何得到这个?

最佳答案

尝试

$sql = " 
SET @rownum=0;
SELECT player_id, rank
FROM (
SELECT player_id, @rownum := @rownum +1 AS rank FROM `player`
ORDER BY `points` DESC
) AS D
WHERE D.player_id=?";

$result = $this->db->query($sql,array($palyer_id))->row_array();

或者你可以尝试

$sql = " 
SELECT player_id, rank
FROM (
SELECT player_id, @rownum := @rownum +1 AS rank
FROM `player` , (SELECT @rownum :=0 ) r
ORDER BY `points` DESC
) AS D
WHERE D.player_id=?";
$result = $this->db->query($sql,array($palyer_id))->row_array();

关于php - 根据MySQL数据库中的积分获取用户排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21284478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com