我建立了一个数据库:
以及生成的表:
我正在尝试从数据库中检索数据,以便输出按照得分最高的玩家按降序显示。但是,我得到以下输出:
数据库中记录的波利温克尔·安德森的高分是600分,但只显示了她的200分。我怎样才能找回每个球员的最高分数?分数被存储为varchar,我阅读了类似问题的解决方案,这些问题需要转换成int。我试过这样做,但仍然不起作用。我是一个新的编程一般,任何帮助将不胜感激。我的代码在下面。谢谢您。
<?php
$sql = "SELECT * , COUNT(*) AS `phone` FROM `players` GROUP BY
CONCAT(`fname`, `surname`) ORDER BY MAX(CONVERT(`score`,INT)) DESC";
$result = mysqli_query($conn,$sql)or die(mysqli_error());
echo "<table>";
echo "<tr><th>Firstname</th><th>Surname</th><th>Email</th><th>Score</th>
<th>Number of Submissions</th></tr>";
while($row = mysqli_fetch_array($result)) {
$fname = $row['fname'];
$surname = $row['surname'];
$email = $row['email'];
$score = $row['score'];
$phone = $row['phone'];
echo "<tr><td style='width: 200px;'>".$fname."</td><td style='width:
200px;'>".$surname."</td><td style='width: 200px;'>".$email."</td><td
style='width: 200px;'>".$score."</td><td style='width: 200px;'>".$phone."
"; }
echo "</table>";
mysqli_close($conn);
?>
2条答案
按热度按时间tyg4sfes1#
如果你想列出你的球员按他们的得分排序,你不需要一个计数或分组的任何东西。您只需使用order by进行简单的select查询,如:
huwehgph2#
您可以尝试以下操作: