根据时间戳获取上一个和下一个URL

时间:2015-01-30 05:19:12

标签: php mysql sql

我有一个页面显示按日期排序的所有项目。当您点击项目时,您将进入页面project-single.php?id=123,其中我有一个上一个和下一个按钮。所有项目都有一个id(没有连续顺序,也就是没有auto_incremented),以及projects表中创建时间戳的日期(2012-07-20 00:36:20的形式)数据库。我试图想一个有效的方法来获得项目的id在id=123之前和之后的prev下一个按钮的日期。但我想不出比使用iddate_created创建数组并比较日期更简单的方法;你可以想象在服务器上会非常沉重,因为这是一个经常访问的页面。有没有人有更清洁的解决方案?

1 个答案:

答案 0 :(得分:1)

您可以考虑将时间戳更改为Unix timestamp而不是字符串。 Unix时间戳是简单的整数,对于数据库来说比较简单有效。

使用比较运算符,时间戳的索引和LIMIT 1,您应该有一个非常快的SQL语句。这是一些示例代码:

-- For getting the next project.
SELECT * FROM projects WHERE date_created > :current_project_date ORDER BY date_created ASC LIMIT 1;
-- For getting the previous project.
SELECT * FROM projects WHERE date_created < :current_project_date ORDER BY date_created DESC LIMIT 1;

我不熟悉MySQL,所以这些结果可能需要一些调整,但这就是要点。