【问题标题】:PHP: How to count values from database and create a top 10 leaderboard of countedPHP:如何计算数据库中的值并创建计数的前 10 名排行榜
【发布时间】:2019-07-15 22:23:34
【问题描述】:

我将如何创建一种方法来计算和显示排行榜,排行榜按值出现的次数组织? 示例数据库:

Bob
Joe
Bob
Bob
Joe
Sandra

然后桌子就是

Bob - 3
Joe - 2
Sandra - 1 

我不确定这是如何完成的。谢谢!

【问题讨论】:

  • 你使用 MySQL 吗?您正在寻找带有GROUP BYCOUNT 的基本SQL 查询。寻找更多。

标签: php sql arrays database


【解决方案1】:

这样的查询是:

SELECT Name, COUNT(Name) AS CounterNames
 FROM table_name
 GROUP BY Name
 ORDER BY CounterNames DESC
 LIMIT 10

因为您需要名称并且还想计算名称,所以您选择了这些名称,但您不希望名称在数据库中是双倍的,因此您使用的是GROUP BY
ORDER BY colum_name DESC 是您在 Counter 之后排序,并且首先具有最大值(DESC)。
LIMIT,因为您只想要前 10 名。

【讨论】:

  • 那么在显示数据时会怎样呢?到目前为止我有这个$result = $conn->query("SELECT Name, COUNT(Name) AS CounterNames FROM table_name GROUP BY Name ORDER BY CounterNames DESC LIMIT 10"); while($row = $result->fetch_assoc()) { if ($result->num_rows > 0) { if($row = $result->fetch_assoc()) { $Top = $row['CounterNames']; } } echo $Top; } 但这只会回显 1。我认为我的查询在显示时是错误的
  • 你有多少条目?而且你只给你的变量$top这个名字计算了多少次的值。
  • 条目将类似于上面的示例数据库。但是我将如何使用您提供的查询使它像上面一样显示?
  • echo $row['Name']."-".$row['CounterNames'];
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-12
  • 2020-12-11
相关资源
最近更新 更多