我有两张桌子。球员和数据。在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>";
}