我的数据库有2个表“category”和“article”,
Category
id | Category
---------------------
1 Mobiles
2 Computers
--------------------
Article
id | Category | title |article
-------------------------------------
1 2 title article desc
2 1 title article desc
3 1 title article desc
4 1 title article desc
5 2 title article desc
--------------------------------------
我为文章页面生成的网址采用这种格式。
URL/ID/TITLE
我想在当前文章页面中显示下一篇和之前的文章标题。
因此我使用以下代码显示带链接的下一个和上一个标题。
上一篇文章
$getid = $_GET['id'];
$previous = $getid - 1;
$previousdata = $db->getRow("select * from article WHERE news_id='$previous'");
下一篇文章
$getid = $_GET['id'];
$next = $getid + 1;
$nextdata = $db->getRow("select * from article WHERE news_id='$next'");
和PHP代码一样
<a href="http://www.domain.com/article-<?php echo ($previousdata['news_id']); ?>/<?php echo friendlyURL($previousdata['title']); ?>"> <?php echo friendlyURL($previousdata['title']); ?></a>
这很好用,它使用id显示下一个和上一个链接中的手机和计算机帖子,
如果我在手机类别中发布2篇文章,则生成的ID为12和13,例如,如果我在计算机类别中发布文章,则生成的ID为14.当用户阅读id为13的移动文章时,在底部显示ID为12的上一篇文章标题和ID为14的下一篇文章标题。显然,上一篇文章是移动的,接下来是计算机类别。
但我想仅显示下一个和之前的“手机”类别的分页,
所以我尝试分配类别
$getid = $_GET['id'];
$next = $getid + 1;
$nextdata = $db->getRow("select * from article WHERE Category=1 AND id='$next'");
这不仅仅过滤移动..
答案 0 :(得分:1)
您可以直接从查询中获取
$getid = $_GET['id'];
$nextdata = $db->getRow("select * from article WHERE Category=1 AND news_id > ".$getid." order by news_id ASC LIMIT 0,1");
$previousdata = $db->getRow("select * from article WHERE Category=1 AND news_id < ".$getid." order by news_id DESC LIMIT 0,1");
答案 1 :(得分:1)
如果我理解你想要获得同一类别中的下一篇/上一篇文章ID:
下一篇文章:
$nextdata = $db->getRow("
select *
from article
where Category = 1 and id > $current_article_id
order by id
limit 1
");
上一篇文章:
$previousdata = $db->getRow("
select *
from article
where Category = 1 and id < $current_article_id
order by id desc
limit 1
");