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 相关文章推荐
将PHP作为Shell脚本语言使用
Oct 09 PHP
用PHP+java实现自动新闻滚动窗口
Oct 09 PHP
php addslashes和mysql_real_escape_string
Jan 24 PHP
PHP 获取客户端真实IP地址多种方法小结
May 15 PHP
PHP版QQ互联OAuth示例代码分享
Jul 05 PHP
php实现异步数据调用的方法
Dec 24 PHP
thinkphp5 加载静态资源路径与常量的方法
Dec 24 PHP
Yaf框架封装的MySQL数据库操作示例
Mar 06 PHP
redis+php实现微博(一)注册与登录功能详解
Sep 23 PHP
laravel 之 Eloquent 模型修改器和序列化示例
Oct 17 PHP
tp5框架使用cookie加密算法实现登录功能示例
Feb 10 PHP
PHP生成图表pChart的示例解析
Jul 31 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中output_buffering
2015/07/13 PHP
JavaScript 事件记录使用说明
2009/10/20 Javascript
dojo随手记 gird组件引用
2011/02/24 Javascript
将字符串转换成gb2312或者utf-8编码的参数(js版)
2013/04/10 Javascript
js获取IP和PcName(IE)在vs中可用
2013/08/02 Javascript
js定时器的使用(实例讲解)
2014/01/06 Javascript
jQuery中queue()方法用法实例
2014/12/29 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
2015/02/03 Javascript
jQuery技巧之让任何组件都支持类似DOM的事件管理
2016/04/05 Javascript
Javascript打印局部页面实例
2016/06/21 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
2016/07/07 Javascript
Nodejs实现短信验证码功能
2017/02/09 NodeJs
vue 组件中添加样式不生效的解决方法
2018/07/06 Javascript
Vue CLI3搭建的项目中路径相关问题的解决
2018/09/17 Javascript
nodejs实现用户登录路由功能
2019/05/22 NodeJs
JS实现简单tab选项卡切换
2019/10/25 Javascript
javascript设计模式 ? 桥接模式原理与应用实例分析
2020/04/13 Javascript
详解微信小程序工程化探索之webpack实战
2020/04/20 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
2020/05/19 Javascript
Python Web框架Flask中使用百度云存储BCS实例
2015/02/08 Python
itchat和matplotlib的结合使用爬取微信信息的实例
2017/08/25 Python
TensorFlow实现Batch Normalization
2018/03/08 Python
Python实现基于SVM的分类器的方法
2019/07/19 Python
关于tf.reverse_sequence()简述
2020/01/20 Python
Python列表操作方法详解
2020/02/09 Python
pandas分批读取大数据集教程
2020/06/06 Python
为世界各地的女性设计和生产时尚服装:ROMWE
2016/09/17 全球购物
美国大城市最热门旅游景点门票:CityPASS
2016/12/16 全球购物
会计电算化专业个人的自我评价
2013/11/24 职场文书
数控专业应届生求职信
2013/11/27 职场文书
高中运动会入场词
2014/02/14 职场文书
和解协议书
2014/04/16 职场文书
保护环境的标语
2014/06/09 职场文书
自我查摆剖析材料
2014/10/11 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书
详解Java分布式事务的 6 种解决方案
2021/06/26 Java/Android