欢迎来到简单网-简单阅读!

当前位置:首页 > 简单阅读 > php 上一篇,下一篇文章实现代码与原理说明 内容

php 上一篇,下一篇文章实现代码与原理说明

选择字体大小: 发布时间:2018-04-20 14:29 | 作者:58ixyz | 来源:互联网 | 阅读:

实现原理: 

就是对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 
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.jb51.net'); 

好了万事俱备了,下面来看一下操作方法 

复制代码代码如下:

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<$cid order by id asc limit 0,1";//下一篇文章 

$result = mysql_query( $sql ); 
if( mysql_num_rows( $result ) ) 

$rs = mysql_fetch_array( $result ); 
echo "上一篇".$rs[0]; 

else 

echo "没有了"; 


$result1 = mysql_query( $sql1 ); 
if( mysql_num_rows( $result1 ) ) 

$rs1 = mysql_fetch_array( $result1 ); 
echo "下一篇".$rs1[0]; 

else 

echo "没有了"; 



以下是别的网友写的文章。 
由于我希望访客在浏览网页的时候需要看到上一主题,下一主题的标题,所以必定是要在数据库中查询出来的了,可以通过limit限制来取,比如,我的博客是按照ID自动增量的,那么可以通过查找大于或者小于当前ID来取 

$UpSQL="SELECT * FROM `blog` WHERE `ID`<$id ORDER BY `ID` DESC LIMIT 0,1"; 
$DownSQL="SELECT `ID`,`Title` 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` DESC LIMIT 0,1"; 
break; 
case 'Down': 
$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; 


通过传递一个动作来实现上一主题,下一主题


猜你喜欢
我要访问:电脑版手机版