从每行的2列中获取值,对它们进行四舍五入,最后对它们进行排序

问题描述 投票:0回答:2

只想快速说一下,我不是“php/sql 程序员”,我了解基础知识,但不了解更高级的东西,这有时给我带来困难(就像现在)顺便说一句,对不起我的英语不好,我我来自瑞典。

好吧,我准备在网上创建一个 Dreamcast 数据库,大家可以在其中找到游戏的具体信息,比如某个特定游戏需要多少 VMU 块来保存,或者只是简单地整理一下支持 VGA 适配器的游戏等等。 (网站可以在 dreamcastdb.com 上找到,请注意,它只有几天的历史,所以它还远未完成,每个 Dreamcast 游戏,无论已发布还是未发布,都将在我死之前出现在这个网站上,这是一个承诺)

我有一个“游戏”表,每个游戏一行,目前数据库中只有 3 个游戏。在行中,我有 2 列对此问题感兴趣,即 nrvotes 和 sumvotes,每次访问者对游戏投票时,nrvotes 都会 +1,sumvotes 会随着他/她投票的分数而增加 (1-10)。

我想在我的index.php(第一页)上显示得分最高的3个游戏,这意味着我必须选择我的游戏数据库中的所有游戏,并“舍入”我从 sumvotes/nvotes 获得的值,然后最后对它们进行排序,最后我想展示前 3 名。

目前我的代码看起来像这样,但它根本不起作用。

query = select from * games order by (round ($sumvotes/$nrvotes,2) DESC LIMIT 3;";

我不明白如何在这里发布正确的 php 代码,系统提示我一条错误消息,但我认为你明白我的意思,这段代码没有做我想要的事情。

好吧,这就是目前的样子,我知道如果这可行的话,它只会显示游戏的封面并按正确的顺序(最高分在上面),目前我只显示封面当然,我会添加标题和分数。

我真的很感谢更有经验的 php/sql 程序员的帮助。

提前致谢

php sql sorting rounding
2个回答
0
投票

您可以尝试使用数组。 进行一个 while 循环,然后检查得票数是否高于数据库中的 3。 如果是,则通过覆盖将其放入数组中。

类似这样的事情?

祝你好运! :)


0
投票

整数除以整数得到整数结果。如果你把其中一个票数转换成十进制,应该不错

SELECT * FROM games order by round(decimal(10,2),sumvotes/numvotes) desc
© www.soinside.com 2019 - 2024. All rights reserved.