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

时间:2014-01-13 13:18:11

标签: php sql sorting rounding

只是想快点说我不是“php / sql程序员”,我理解基础知识,但不是更高级的东西,女巫有时给我一个艰难的时间(就像现在一样)抱歉我的坏英语顺便说一句,我来自瑞典:)

Okey,我即将在线创建一个Dreamcast数据库,每个人都可以找到有关游戏的具体信息,例如特定游戏需要保存多少VMU数据块,或者只是整理支持VGA适配器的游戏等等。 (网站可以在dreamcastdb.com上找到,请注意它只有几天的时间,所以它仍然远未完成,每个Dreamcast游戏在那里,发布和未发布将在我死之前在这个网站上,这是一个承诺)

我有一个“游戏”表,每个游戏有一行,因为现在我在数据库中只有3个游戏。在行中我有2列感兴趣的问题,nrvotes和sumvotes,每次访问者对游戏进行投票时,nrvotes将为+1,并且sumvotes随着他/她投票的分数(1-10)而增加。 / p>

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

至于现在我的代码看起来像这样,但它根本不起作用。

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

我不明白如何在这里发布正确的PHP代码,我被提示错误消息,但我觉得你有我的观点,这段代码不是我想做的。

Okey这就是目前的样子,我知道如果这样可行,它只会显示游戏的封面和正确的顺序(最高分),因为现在生病只会显示封面我添加了标题和cource的分数。

我非常感谢经验丰富的php / sql程序员提供的一些帮助。

先谢谢,来自瑞典的Florian,一个梦幻般的粉丝:)

2 个答案:

答案 0 :(得分:0)

您可以尝试使用数组。 制作一个while循环,然后检查投票是否高于数据库中的3。 如果是这样,请将其覆盖在数组中。

那样的东西?

祝你好运! :)

答案 1 :(得分:0)

将整数除以整数会得到整数作为结果。如果您将其中一个投票计数转换为十进制,那么它应该是好的

SELECT * FROM games order by round(decimal(10,2),sumvotes/numvotes) desc