我目前有这个PHP/SQL代码:
$today = date("Y-m-d");
$sqlQuery = 'SELECT id FROM post
WHERE (100*((agree+disagree)-('.nbDays('date', $today).')*10) >= 75)';
还有我的nbDays函数。
function nbDays($debut, $fin) {
$nbSecondes= 60*60*24;
$debut_ts = strtotime($debut);
$fin_ts = strtotime($fin);
$diff = $fin_ts - $debut_ts;
return round($diff / $nbSecondes);
}
这是我的帖子表的样子:
Post
-- #id
-- [int] agree
-- [int] disagree
-- [datetime] date
我想做的是为符合此条件的帖子返回一个 id 数组;
(100 * ( 同意/(同意+不同意) )-(从发布日期到今天的天数) )> 75
我想使用 SQL 请求,这样我就不必在整理之前列出所有帖子。
我希望我足够清楚,并希望你能帮助我。
多谢!
在您的情况下,您可以编写一个数据库存储过程来处理你的逻辑.然后直接在 PHP 中调用数据库过程。总之 如果您使用MYSQL,也许您可以尝试以下简单查询。
SELECT id FROM post WHERE (100*((agree+disagree)-(UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(date))*10) >= 75);