PHP实现上一篇下一篇的方法实例总结


Posted in PHP onSeptember 22, 2016

本文实例分析了PHP实现上一篇下一篇的方法。分享给大家供大家参考,具体如下:

php实现上一篇下一篇这个主要是通过sql来根据当前的id来进行判断然后筛选出当前ID之前的数据或ID之后的数据了就这么简单,具体的我们来看看。

实现网站文章里面上一篇和下一篇的sql语句的写法。

当前文章的id为 $article_id,当前文章对应分类的id是$cat_id,那么上一篇就应该是:

SELECT max(article_id) FROM article WHERE article_id < $article_id AND cat_id=$cat_id;

执行这段sql语句后得到 $max_id,然后

SELECT article_id, title FROM article WHERE article_id = $max_id;

简化一下,转为子查询即:

SELECT article_id, title FROM article WHERE article_id = (SELECT max(article_id) FROM article WHERE article_id < $article_id AND cat_id=$cat_id);

下一篇为,代码如下:
SELECT min(article_id) FROM article WHERE article_id > $article_id AND cat_id=$cat_id;

执行这段sql语句后得到 $min_id,然后:
SELECT article_id, title FROM article WHERE article_id = $min_id;

简化一下,转为子查询即:

SELECT article_id, title FROM article WHERE article_id = (SELECT min(article_id) FROM article WHERE article_id > $article_id AND cat_id=$cat_id);

最后讲一下有很多朋友喜欢使用下面语句

上一篇,代码如下:

select id from table where id10 limit 0,1;

这样肯定没有问题,但是是性能感觉不怎么地.

sql语句优化:

你可以使用union all来实现一条语句取3行数据,但是前提是3个查询的字段要相同,这个查询出来的结果第一行就是上一篇文章,第二行是当前文章,第三行是下一篇文章,代码如下:

(select id from table where id < 10 order by id asc limit 1) union all (select id from table where id = 10) union all (select id from table where id > 10 order by id desc limit 1);

现在来看一些cms中的例子phpcms 实现上一篇下一篇.

获取当前浏览文章id:

$id = isset($_GET['id']) > 0 ? intval($_GET['id']) : "";

下一篇文章:

$query = mysql_query("SELECT id,title FROM article WHERE id>'$id' ORDER BY id ASC LIMIT 1");
$next = mysql_fetch_array($query);

上一篇文章:

$query = mysql_query("SELECT id,title FROM article WHERE id <'$id' ORDER BY id DESC LIMIT 1");
$prev = mysql_fetch_array($query);

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP的FTP学习(四)
Oct 09 PHP
php实现的MySQL通用查询程序
Mar 11 PHP
php数组编码转换示例详解
Mar 11 PHP
JavaScript创建命名空间的5种写法
Jun 24 PHP
php中eval函数的危害与正确禁用方法
Jun 30 PHP
PHP实现的构造sql语句类实例
Feb 03 PHP
深入理解PHP中的count函数
May 31 PHP
php图片合成方法(多张图片合成一张)
Nov 25 PHP
浅析PHP类的反射来实现依赖注入过程
Feb 06 PHP
PDO::_construct讲解
Jan 27 PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
Oct 10 PHP
KindEditor在php环境下上传图片功能集成的方法示例
Jul 20 PHP
php微信公众平台配置接口开发程序
Sep 22 #PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
Sep 22 #PHP
php中二分法查找算法实例分析
Sep 22 #PHP
Yii2中SqlDataProvider用法示例
Sep 22 #PHP
php实现压缩合并js的方法【附demo源码下载】
Sep 22 #PHP
php简单压缩css样式示例
Sep 22 #PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
Sep 22 #PHP
You might like
PHP中在数据库中保存Checkbox数据(2)
2006/10/09 PHP
PHP新手入门学习方法
2011/05/08 PHP
php中json_decode()和json_encode()的使用方法
2012/06/04 PHP
PHP中文分词 自动获取关键词介绍
2012/11/13 PHP
thinkPHP2.1自定义标签库的导入方法详解
2016/07/20 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
提高网站信任度的技巧
2008/10/17 Javascript
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
JQuery 构建客户/服务分离的链接模型中Table中的排序分析
2010/01/22 Javascript
javascript删除字符串最后一个字符
2014/01/14 Javascript
Node.js中AES加密和其它语言不一致问题解决办法
2014/03/10 Javascript
javascript与有限状态机详解
2014/05/08 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
2014/06/03 Javascript
使用JavaScript+canvas实现图片裁剪
2015/01/30 Javascript
Bootstrap导航栏各元素操作方法(表单、按钮、文本)
2015/12/28 Javascript
浅谈JQ中mouseover和mouseenter的区别
2016/09/13 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
2016/09/28 Javascript
用Angular实时获取本地Localstorage数据,实现一个模拟后台数据登入的效果
2016/11/09 Javascript
javascript  数组排序与对象排序的实例
2017/07/17 Javascript
JavaScript模板引擎原理与用法详解
2018/12/24 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
如何运行Python程序的方法
2013/04/21 Python
python网络编程学习笔记(五):socket的一些补充
2014/06/09 Python
Django自定义manage命令实例代码
2018/02/11 Python
numpy数组之存取文件的实现示例
2019/05/24 Python
使用python写一个自动浏览文章的脚本实例
2019/12/05 Python
pycharm工具连接mysql数据库失败问题
2020/04/01 Python
基于pycharm实现批量修改变量名
2020/06/02 Python
keras K.function获取某层的输出操作
2020/06/29 Python
浅谈优化Django ORM中的性能问题
2020/07/09 Python
幼儿园门卫制度
2014/01/29 职场文书
工商干部先进事迹
2014/05/14 职场文书
迎国庆演讲稿
2014/09/15 职场文书
2015年党务工作者个人工作总结
2015/10/22 职场文书
css3 filter属性的使用简介
2021/03/31 HTML / CSS
Vue中插槽slot的使用方法与应用场景详析
2021/06/08 Vue.js