首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从MySQL时间戳获取上次查看的项目

从MySQL时间戳获取上次查看的项目
EN

Stack Overflow用户
提问于 2014-01-11 09:39:38
回答 2查看 122关注 0票数 0

我正在尝试从MySQL数据库中检索最后查看的页面,它的结构如下:

articles table

代码语言:javascript
复制
  id |   title   | content |   created  
----------------------------------------
  1  |  title-1  |  info-1 | 1386478352 
  2  |  title-2  |  info-2 | 1386532855 
  3  |  title-3  |  info-3 | 1386637325 
  4  |  title-4  |  info-4 | 1386812249 
  5  |  title-5  |  info-5 | 1387094028 

我想获得最后查看的页面,不确定多少时间是足够的,因为每次网站上的页面刷新这个函数都会被调用。但是,这就是我尝试过的,但是它没有返回任何东西。

代码语言:javascript
复制
"SELECT * FROM articles WHERE TIMESTAMPDIFF(MINUTE, created,NOW()) < 10 LIMIT 2"

但正如我所说的,它不会返回任何数据。这就是我试图打印信息的方式。

代码语言:javascript
复制
$loopOne = 0;
foreach($articleLastView as $recent)
{
    $recent_id          = $recent['id'];
    $recent_title       = $recent['title'];
    $recent_created     = $recent['created'];

    if ( $loopOne == 0 )
    {
        echo 'I print info here if result is the first';
    $loopOne++;
    } 
    else if( $loopOne == 1 )
    {
        echo 'I print info here if result is the second';
    $loopOne++;
    } 
}
EN

回答 2

Stack Overflow用户

发布于 2014-01-11 09:47:57

代码语言:javascript
复制
"SELECT * FROM `articles` ORDER BY `created` DESC LIMIT 1"

这应该会得到最后一次查看的页面。

票数 2
EN

Stack Overflow用户

发布于 2014-01-11 10:29:39

我认为您的函数不工作的原因是您传入了一个UNIX时间戳,而该函数需要两个datetime表达式。

根据Doc的说法

TIMESTAMPDIFF(单位,datetime_expr1,datetime_expr2)

返回datetime_expr2 - datetime_expr1,其中datetime_expr1和datetime_expr2是日期或日期时间表达式。

第一个表达式是UNIX时间戳,而NOW()表达式是日期时间。

尝试将UNIX时间戳转换为日期时间格式。

例如:

代码语言:javascript
复制
SELECT * 
FROM articles 
WHERE TIMESTAMPDIFF(MINUTE, FROM_UNIXTIME(created), NOW()) < 10 
LIMIT 2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21057487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档