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


Posted in PHP onMay 09, 2010

实现原理:

就是对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, '3water.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<$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; 
}

通过传递一个动作来实现上一主题,下一主题
PHP 相关文章推荐
dedecms系统常用术语汇总
Apr 03 PHP
linux下 C语言对 php 扩展
Dec 14 PHP
ThinkPHP采用模块和操作分析
Apr 18 PHP
php debug 安装技巧
Apr 30 PHP
php 伪造本地文件包含漏洞的代码
Nov 03 PHP
解析关于wamp启动是80端口被占用的问题
Jun 21 PHP
PHP中header函数的用法及其注意事项详解
Jun 13 PHP
Thinkphp框架开发移动端接口(1)
Aug 18 PHP
PHP Header失效的原因分析及解决方法
Nov 16 PHP
PHP测试框架PHPUnit组织测试操作示例
May 28 PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 PHP
Linux系统下安装PHP7.3版本
Jun 26 PHP
php 获取本机外网/公网IP的代码
May 09 #PHP
php 仿Comsenz安装效果代码打包提供下载
May 09 #PHP
php ob_flush,flush在ie中缓冲无效的解决方法
May 09 #PHP
php 各种应用乱码问题的解决方法
May 09 #PHP
php 输出双引号&quot;与单引号'的方法
May 09 #PHP
php for 循环语句使用方法详细说明
May 09 #PHP
php 函数使用方法与函数定义方法
May 09 #PHP
You might like
php将字符串转换成16进制的方法
2015/03/17 PHP
Yii2 ActiveRecord多表关联及多表关联搜索的实现
2016/06/30 PHP
Javascript中Eval函数的使用
2010/03/23 Javascript
JQuery中的html()、text()、val()区别示例介绍
2014/09/01 Javascript
小结Node.js中非阻塞IO和事件循环
2014/09/18 Javascript
基于jQuery实现的图片切换焦点图整理
2014/12/07 Javascript
jQuery中next()方法用法实例
2015/01/07 Javascript
jQuery及JS实现循环中暂停的方法
2015/02/02 Javascript
Vue.js基础知识小结
2017/01/13 Javascript
nodejs结合Socket.IO实现的即时通讯功能详解
2018/01/12 NodeJs
微信小程序表单验证form提交错误提示效果
2020/06/19 Javascript
Vue slot用法(小结)
2018/10/22 Javascript
vue+SSM实现验证码功能
2018/12/07 Javascript
ES6顶层对象、global对象实例分析
2019/06/14 Javascript
vue中在vuex的actions中请求数据实例
2019/11/08 Javascript
vue等两个接口都返回结果再执行下一步的实例
2020/09/08 Javascript
npm ci命令的基本使用方法
2020/09/20 Javascript
[00:33]2016完美“圣”典风云人物:BurNIng宣传片
2016/12/10 DOTA
[04:29]【TI9采访】OG.N0tail在胜者组决赛后接受采访
2019/08/25 DOTA
深入理解NumPy简明教程---数组2
2016/12/17 Python
浅谈python装饰器探究与参数的领取
2017/12/01 Python
PyQt5每天必学之布局管理
2018/04/19 Python
Python在groupby分组后提取指定位置记录方法
2018/04/20 Python
对pandas的层次索引与取值的新方法详解
2018/11/06 Python
Python qrcode 生成一个二维码的实例详解
2020/02/12 Python
html5用video标签流式加载的实现
2020/05/20 HTML / CSS
优秀教师的感人事迹
2014/02/04 职场文书
教师自我鉴定范文
2014/03/20 职场文书
民族团结先进集体事迹材料
2014/05/22 职场文书
职代会闭幕词
2015/01/28 职场文书
优秀乡村医生事迹材料(2016精选版)
2016/02/29 职场文书
工作转正自我鉴定范文
2019/06/21 职场文书
Python读取文件夹下的所有文件实例代码
2021/04/02 Python
聊聊SpringBoot自动装配的魔力
2021/11/17 Java/Android
python APScheduler执行定时任务介绍
2022/04/19 Python
微前端qiankun改造日渐庞大的项目教程
2022/06/21 Javascript