【问题标题】:Sorting numbers by rank PDO PHP按等级 PDO PHP 对数字进行排序
【发布时间】:2014-02-02 00:51:04
【问题描述】:

所以我正在尝试在 php 上制作一个高分系统,但是我无法弄清楚这个非常困难的部分。

所以 SQL 数据库将有多个玩家,每一行都会有“playerName”、“defencelvl”、“defencexp”等,但出于测试目的,我们可以尝试按照谁拥有最多的防守经验来对他们进行排名。

假设有三个条目,它看起来像这样

--NAME-- -LEVEL- -EXP-

“乔丹”、“92”、“32,424,525”

“泰勒”、“92”、“32,892,241”

“特伦特”、“92”、“32,492,641”

因此,每次搜索时,高分页面只会显示 1 个玩家,例如 view.php?username=Jordan,(我可以弄清楚这些东西), 但我似乎无法弄清楚的困难部分是根据他们所处的位置对他们进行排名,所以乔丹会排在第三位,因为他的经验低于其他人,泰勒会排在第一位,因为他的经验是最高,特伦特将排在第二位,我正在做的一个几乎完全一样的例子是在这个游戏网站上http://services.runescape.com/m=hiscore/compare?user1=S%A0U%A0O%A0M%A0I,这就是我正在做的高分类型。

再一次,我只是不知道如何对它们进行排名,我想为每项技能都进行排名,而不需要进行太多 PDO SQL 查询。如果你不明白我想说什么,请告诉我,我会发布更深入的描述。谢谢!!

【问题讨论】:

  • 每个单元格一个值。首先,您的表格不应该是这样的。
  • 您应该更清楚地了解对它们进行排名是什么意思。您的意思是按特定顺序获取数据吗?你的意思是如何在屏幕上显示它?你的意思是如何编写sql查询?另外,您是否考虑过数据库结构?涉及哪些表?结构是什么?
  • @user3238707 我的意思是,一个单元格中有三个 CSV 值。将每个值放在各自的列中不是更有意义吗?然后你可以单独引用它们,并且不需要解析出值。

标签: php sorting pdo rank


【解决方案1】:

假设一个表的信息与你显示的相似,你只需要一个简单的查询就像

SELECT * FROM `players`ORDER BY exp DESC

如果需要/想要,您可以使用“desc”来反转顺序。

但正如 christopher 所提到的,您首先应该弄清楚 dabatase 结构是什么,然后您才能进行查询。不用担心有多少,如果数据库设计得当,就不会有任何问题。

【讨论】:

  • 我的数据库非常有条理,如果您愿意,我可以发布带有示例的 SQL 部分。您向我展示的内容会以正确的方式组织它,但我无法将当前玩家的实际统计数据与 DESC 功能的组织统计数据列表进行比较,并获得当前玩家排名。
  • 你想比较什么?查询的结果是什么?我发布的查询只是以升序或降序从表中获取数据的一种非常通用的方式,但是如果您想要特定的结果,您可能必须使用其他元素,例如 LIMIT 1,这取决于您想要什么完成。我不清楚你真正想要什么。你能改写你的问题,发布一些代码或示例吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-12
  • 1970-01-01
  • 1970-01-01
  • 2012-08-02
  • 2019-10-04
相关资源
最近更新 更多