我正在建立一个包含文章的新闻网站,并试图在每篇文章的末尾显示下一篇文章和上一篇文章。
下一个链接工作正常,但上一个链接始终显示第一个帖子。 以下是我为每个代码使用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
代码中缺少某些内容吗?
您只会获得id
低于当前帖子的帖子。
默认情况下,数据库按主字段和 ASC 顺序排序。
因此,它总是以最低id
返回帖子。
您需要的是低于当前和最高id
的帖子。
因此,更正后的代码应该是:
$get_prev_sql = "SELECT * FROM articles WHERE id < '$article_id' ORDER BY id DESC LIMIT 1";
$get_prev_sql = "SELECT * FROM articles WHERE id < '$article_id' ORDER BY id DESC LIMIT 1";
主键的默认顺序为 ASC
使用此查询
select * from table_name where id < your_current_id order BY id desc limit 1