2016-05-27 51 views
1

我想在一个星期内制作一个像twitter趋势标签一样的热门列表。以下代码仅适用于1 DAY,但我想更改它1 WEEK我该怎么做。我仍试图改变它INTERVAL 1 WEEK,但没有奏效。任何人都可以帮助我吗?像Twitter一样不会工作的一周内的热门标签

$query = mysqli_query($this->db,"SELECT * FROM posts WHERE FROM_UNIXTIME(created) > CURRENT_DATE AND FROM_UNIXTIME(created) < CURRENT_DATE + INTERVAL 1 DAY AND Tag != ''") or die(mysqli_error($this->db)); 
+0

您正在选择在当前时间之后“创建”的帖子,这听起来不正确。 – paul

+0

不工作意味着什么? –

+0

@juergend不工作意味着如果我使用INTERVAL 1 WEE没有任何结果。正常情况下,INTERVAL 1 DAY的问题查询得到5个标签。 – Azzo

回答

2

我认为你是选择错误的方式间隔) 如果你想为明天一个星期,一个星期使用(0周7天

SELECT * 
    FROM posts 
    WHERE FROM_UNIXTIME(created) > CURRENT_DATE 
    AND FROM_UNIXTIME(created) < (CURRENT_DATE + INTERVAL 1 WEEK) 
    AND Tag != '' 

    SELECT * 
    FROM posts 
    WHERE FROM_UNIXTIME(created) > CURRENT_DATE 
    AND FROM_UNIXTIME(created) < (CURRENT_DATE + INTERVAL 7 DAY) 
    AND Tag != '' 

否则,如果你想之前选择一个星期使用

SELECT * 
    FROM posts 
    WHERE FROM_UNIXTIME(created) > (DATE_SUB(NOW(), INTERVAL 1 WEEK) 
    AND FROM_UNIXTIME(created) <= CURRENT_DATE 
    AND Tag != '' 

但是,如果日期是已经在日期时间格式使用

SELECT * 
FROM posts 
WHERE created > CURRENT_DATE 
AND created < (CURRENT_DATE + INTERVAL 7 DAY) 
AND Tag != '' 
+0

谢谢你的回答。但是这个代码不工作:'SELECT * 来自帖子 WHERE FROM_UNIXTIME(创建)> CURRENT_DATE 和FROM_UNIXTIME(创建)<(CURRENT_DATE +间隔1周) 和TAG = ''' – Azzo

+0

你能告诉我的数据!创建字段的类型..并且你的意思是没有工作..错误? ...错误的结果? ...没有错误,没有结果? – scaisEdge

+1

任何方式,我有一个新的建议更新答案 – scaisEdge

相关问题