我有两张桌子。球员和数据。在player中是用户名和id。在stats中是荣誉和id。这两个表中的id是相同的。一个玩家,一个身份证。我想按荣誉排序,并将其与用户名一起回显到表中。
这是我的尝试,但我不能做任何命令。
玩家计数器是玩家的计数。+1原因是它从2开始

$getPlayerCounter = mysql_query("SELECT `id` FROM `player`");
$playerCounter = mysql_num_rows($getPlayerCounter);
for ($i = 2; $i <= $playerCounter + 1; $i++) {
    $username = mysql_query("SELECT `player`.*, `stats`.* FROM `player` INNER JOIN `stats` ON `player`.`id`=$i AND `stats`.`id`=$i") or die(mysql_error());;
    $fetch = mysql_fetch_assoc($username);
    echo "<tr>";
    echo "<td>".$fetch['username']."</td>";
    echo "<td>".$fetch['honor']."</td>";
    echo "</tr>";
    }

最佳答案

不用你的回路。如果你已经查询了一个排序列表,那么这个解决方案怎么样?有点像:

SELECT * FROM player p
  JOIN stats s on p.id = s.id
ORDER BY s.honor DESC

其中荣誉是stats值的列的名称(希望它是一个可以像数字一样排序的列)。
您将得到一系列按STATS值按降序排列的行(顶部最大值)。现在,您可以按照它在获取的数组中的顺序逐行获取它。
在阵列中执行以下操作:
$result = mysql_query(the_query_above);
while ($row = mysql_fetch_assoc($result)) {
    echo "<tr>";
    echo "<td>".$row['username']."</td>";
    echo "<td>".$row['honor']."</td>";
    echo "</tr>";
}

10-06 03:15