路过的MySQL行评分算法?

我有这个PHP算法排名功能(黑客新闻):

function calculate_score($votes, $item_hour_age, $gravity=1.8){ return ($votes - 1) / pow(($item_hour_age+2), $gravity); }

我有这个表在MySQL的:

post{id, post_text, votes, date}:

我想知道我怎样才能通过这些MySQL数据参数的功能,以确定他们去的顺序$item_hour_age是多少个小时后的帐。

--------------解决方案-------------

那么你已经有了$ votes ,所以你只需要改变$ date为小时,然后:

$item_hour_age = (time() - $date) / 60 / 60; // minutes+seconds

组装输出的结果数组排序:

foreach ($pdo->fetchAll() as $article) {

$score = calculate_score(...);

$r[$score] = $article;
}
krsort($r);

随后遍历从$ r和输出他们的文章列表。

我不知道你在规格细节,但你可以使用一个MySQL查询。

操作简单,而且可能更快速的CPU和内存方面,使可能的结果分页(如果你需要它)与较少的PHP的内存使用情况

选择T *,( votes -1)/ POW((DATE_DIFF(NOW(), date )),1.8)的评分从表顺序按分数降序

我以为$ item_hour_age它在天的区别。 您可以通过转换为时间戳方便地使用小时

分类:php 时间:2015-03-15 人气:0
本文关键词: 算法,PHP和MySQL
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.442 (s). 10 q(s)