php实现 上一篇,下一篇文章代码与原理说明
程序员文章站
2022-06-03 11:05:37
...
php实现 上一篇,下一篇文章代码与原理说明
就是对id对进行order by id desc 或 order by id asc进行排序,然后再判断比当前id> or小于当前文章id的相同栏目的文章。 实现原理:
就是对id对进行order by id desc 或 order by id asc进行排序,然后再判断比当前id> or小于当前文章id的相同栏目的文章。
实例的sql语句如下:
$id就是当面文章的id
select * from news where id$id order by id desc limit 0,1
-- -- 表的结构 `string_find` -- CREATE TABLE IF NOT EXISTS `string_find` ( `id` int(4) NOT NULL auto_increment, `charList` varchar(100) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ; -- -- 导出表中的数据 `string_find` -- INSERT INTO `string_find` (`id`, `charList`) VALUES (1, '脚本之家'), (2, 'baidu'), (5, 'www.baidu.com'), (6, 'www.scutephp.com');
下面来看一下操作方法
代码如下:
mysql_connect('localhost','root','root') or die(mysql_error()); mysql_select_db('cc'); mysql_query("set names 'gbk'"); $cid =5;//是你当前文章的编号 $sql ="select * from string_find where id>$cid order by id desc limit 0,1"; //上一篇文章 $sql1 ="select * from string_find where id
以下是别的网友写的文章。
由于我希望访客在浏览网页的时候需要看到上一主题,下一主题的标题,所以必定是要在数据库中查询出来的了,可以通过limit限制来取,比如,我的博客是按照ID自动增量的,那么可以通过查找大于或者小于当前ID来取$UpSQL="SELECT * FROM `blog` WHERE `ID` $id ORDER BY `ID` ASC LIMIT 0,1";
再通过查询,取出数据
如果只是单一的"上一篇","下一篇"那么就没有必要查询了,这样是不必查询了,但也许用户点击之后会看到,这已经是首页了或者这已经是末页了,呵呵
代码如下:switch($act) { case "Up": $SQL="SELECT * FROM `blog` WHERE `ID` $id ORDER BY `ID` ASC LIMIT 0,1"; break; default : $SQL="SELECT * FROM `blog` WHERE `ID`= $id LIMIT 0,1"; break; }
通过传递一个动作来实现上一篇,下一篇