gpt4 book ai didi

php - 使用多个 MySQL 查询和 PHP 获取行位置

转载 作者:行者123 更新时间:2023-11-30 22:28:40 25 4
gpt4 key购买 nike

我有一个如下所示的 MySQL 表:

id | player | game 1 | game 2 | game 3
--------------------------------------
1 | Joe | 345 | 34 | 64
2 | Mark | 12 | 256 | 35
3 | Dan | 156 | 134 | 122

该表有大约 20K 个条目。“游戏 1”、“游戏 2”、“游戏 3”列包含玩家在每场游戏中的得分。

我需要为每个玩家创建一个页面,我在其中显示他们在第 1 场比赛、第 2 场比赛和第 3 场比赛中的排名位置。全部在一个页面中。

首先,我不知道如何获得用户的排名位置...例如,如果我想输出乔在游戏 1 中的排名,当然我可以执行 ORDERBY '游戏 1',但是那么我如何获得 Joe 的排名?

第二:是否可以在单个查询中获得 Joe 在游戏 1、游戏 2 和游戏 3 中的排名,还是我必须执行 3 个单独的查询?

感谢您的帮助,非常感谢。

最佳答案

首先,您需要在其中放置一个 ID 列,每次添加玩家时该列都会自动递增。然后根据用户的id拉取行。

使用 PDO

//Set your user Id somehow.. Maybe from a session or from your URL
$userId = trim(strip_tags($_GET['userId']));

//Then query your db and order by game 1 descending from highest score down to 0

$user_sth = $dbh->prepare("SELECT player, game 1, game 2, game 3 FROM players ORDER BY game 1 DESC")
$user_sth->execute();

//start the rank at 1
$rank = 1;

//create a variable to store our results in
$results = '';

//fetch the result array
while($user = $user_sth->fetch(PDO::FETCH_ASSOC){
//maybe put it into a table row
$results .= '<tr><td>'.$rank.'</td><td>'.$user['player'].'</td><td>'.$user['game 1'].'</td></tr>';

//update our rank position number
$rank++;
}

现在您可以在 html 中的某处回显 $results

关于php - 使用多个 MySQL 查询和 PHP 获取行位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34499473/

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