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 相关文章推荐
ftp类(example.php)
Oct 09 PHP
解决phpmyadmin中文乱码问题。。。
Jan 18 PHP
php &amp;&amp; 逻辑与运算符使用说明
Mar 04 PHP
深入PHP nl2br()格式化输出的详解
Jun 05 PHP
10 个经典PHP函数
Oct 17 PHP
php判断电脑访问、手机访问的例子
May 10 PHP
PHP中文乱码解决方案
Mar 05 PHP
php把大写命名转换成下划线分割命名
Apr 27 PHP
Netbeans 8.2与PHP相关的新特性介绍
Oct 08 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
Nov 02 PHP
php微信公众平台交互与接口详解
Nov 28 PHP
thinkphp5实现微信扫码支付
Dec 23 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
phpmyadmin中禁止外网使用的方法
2014/11/04 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
js AspxButton的客户端操作
2009/06/26 Javascript
基于jQuery的表格操作插件
2010/04/22 Javascript
将HTMLCollection/NodeList/伪数组转换成数组的实现方法
2011/06/20 Javascript
面向对象设计模式的核心法则
2013/11/10 Javascript
jQuery 追加元素的方法如append、prepend、before
2014/01/16 Javascript
深入分析js的冒泡事件
2014/12/05 Javascript
Javascript中的Callback方法浅析
2015/03/15 Javascript
JavaScript清空数组元素的两种方法简单比较
2015/07/10 Javascript
SublimeText自带格式化代码功能之reindent
2015/12/27 Javascript
在WordPress中加入Google搜索功能的简单步骤讲解
2016/01/04 Javascript
详解堆的javascript实现方法
2016/11/29 Javascript
js生成随机颜色方法代码分享(三种)
2016/12/29 Javascript
jquery使用iscorll实现上拉、下拉加载刷新
2017/10/26 jQuery
vue父组件向子组件传递多个数据的实例
2018/03/01 Javascript
浅谈React组件之性能优化
2018/03/02 Javascript
解决Idea、WebStorm下使用Vue cli脚手架项目无法使用Webpack别名的问题
2019/10/11 Javascript
Python实现字典依据value排序
2016/02/24 Python
Python使用poplib模块和smtplib模块收发电子邮件的教程
2016/07/02 Python
pycharm远程调试openstack代码
2017/11/21 Python
python+tkinter编写电脑桌面放大镜程序实例代码
2018/01/16 Python
python将字符串list写入excel和txt的实例
2019/07/20 Python
Django和Flask框架优缺点对比
2019/10/24 Python
Python集合操作方法详解
2020/02/09 Python
css和css3弹性盒模型实现元素宽度(高度)自适应
2019/05/15 HTML / CSS
详解利用css3的var()实现运行时改变scss的变量值
2021/03/02 HTML / CSS
英国哈罗德园艺:Harrod Horticultural
2020/03/31 全球购物
外企C语言笔试题
2013/11/10 面试题
大班亲子运动会方案
2014/06/10 职场文书
工商管理自荐书
2014/07/06 职场文书
一份文言文检讨书
2014/09/13 职场文书
护士长2014年终工作总结
2014/11/11 职场文书
2015年城管个人工作总结
2015/05/15 职场文书
法定代表人资格证明书
2015/06/18 职场文书
2015军训通讯稿大全
2015/07/18 职场文书