我正在建立一个包含文章的新闻网站,我试图在每篇文章末尾显示下一篇和之前的文章。
下一个链接工作正常但前一个链接始终显示第一个帖子。以下是我为每个人使用的get
代码:
$get_next_sql = "SELECT * FROM articles WHERE id > '$article_id' LIMIT 1";
$get_prev_sql = "SELECT * FROM articles WHERE id < '$article_id' LIMIT 1";
我遗漏了prev
代码中的内容吗?
答案 0 :(得分:4)
您只会收到id
小于当前的帖子。
默认情况下,数据库使用PRIMARY字段和IN ASC顺序进行排序。
所以,它始终以最低id
返回帖子。
您需要的是低于当前且最高id
的帖子。
因此,更正后的代码应为:
$get_prev_sql = "SELECT * FROM articles WHERE id < '$article_id' ORDER BY id DESC LIMIT 1";
答案 1 :(得分:2)
$get_prev_sql = "SELECT * FROM articles WHERE id < '$article_id' ORDER BY id DESC LIMIT 1";
主键的默认顺序是ASC
答案 2 :(得分:1)
使用此查询
select * from table_name where id < your_current_id order BY id desc limit 1