按从高到低的顺序显示前10名最高的“玩家名称”及其“硬币”


Display the top 10 highest `player name` with their `coins` in order from greatest to lowest

我需要帮助按顺序显示players name和它们的coins。我目前有

$SQL = $odb -> query("SELECT SUM(kills) AS `kills` FROM `players` ORDER BY `kills` DESC LIMIT 0,10");
$SQL -> execute();
echo $SQL -> fetchColumn(0);

但这会返回0。

您必须在查询中添加一个GROUP BY子句,现在它将玩家表中的总击杀数相加:

$SQL = $odb -> query("SELECT player_name,SUM(kills) AS `kills`
                      FROM `players`
                      GROUP BY player_name
                      ORDER BY `kills` DESC
                      LIMIT 10");

我假设您有一个名为player_name的列,如果不将其更改为真正的列名的话。

你只是在回显第一列,这是玩家的名字,所以你可以回显第二列以及

echo $SQL -> fetchColumn(0);
echo $SQL -> fetchColumn(1);

好的,到目前为止我有这个

$SQL = $odb -> query("SELECT username,SUM(kills) AS杀死 FROM玩家 GROUP BY username ORDER BY杀死DESC LIMIT 10");

$SQL -> execute(); echo $SQL -> fetchColumn(0); echo '  '; echo $SQL -> fetchColumn(1);

它只说我需要1名球员,让它成为10人。