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分页显示制作详细讲解
Oct 09 PHP
截获网站title标签之家内容的例子
Oct 09 PHP
利用curl抓取远程页面内容的示例代码
Jul 23 PHP
php中session使用示例
Mar 29 PHP
CI框架安全类Security.php源码分析
Nov 04 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
Apr 22 PHP
php分页原理 分页代码 分页类制作教程
Sep 23 PHP
php实现的PDO异常处理操作分析
Dec 27 PHP
PHP convert_uudecode()函数讲解
Feb 14 PHP
PHP函数积累总结
Mar 19 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
Aug 05 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
Feb 27 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中的命名空间相关概念浅析
2015/01/22 PHP
php内嵌函数用法实例
2015/03/20 PHP
PHP常见的序列化与反序列化操作实例分析
2019/10/28 PHP
JavaScript学习笔记(一) js基本语法
2011/10/25 Javascript
node.js入门教程迷你书、node.js入门web应用开发完全示例
2014/04/06 Javascript
jquery+easeing实现仿flash的载入动画
2015/03/10 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
2015/04/27 Javascript
深入理解JavaScript编程中的原型概念
2015/06/25 Javascript
JS实现跟随鼠标的链接文字提示框效果
2015/08/06 Javascript
将JSON字符串转换成Map对象的方法
2016/11/30 Javascript
详解AngularJS ng-class样式切换
2017/06/27 Javascript
php register_shutdown_function函数详解
2017/07/23 Javascript
JavaScript常用事件介绍
2019/01/21 Javascript
解决vue单页面应用打包后相对路径、绝对路径相关问题
2020/08/14 Javascript
vue 修改 data 数据问题并实时显示操作
2020/09/07 Javascript
jQuery实现图片切换效果
2020/10/19 jQuery
[02:56]《DAC最前线》之国外战队抵达上海备战亚洲邀请赛
2015/01/28 DOTA
[01:01:13]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第三场
2018/04/06 DOTA
Python中使用PDB库调试程序
2015/04/05 Python
python实现给数组按片赋值的方法
2015/07/28 Python
Python用Pillow(PIL)进行简单的图像操作方法
2017/07/07 Python
python将字符串以utf-8格式保存在txt文件中的方法
2018/10/30 Python
学习Python列表的基础知识汇总
2020/03/10 Python
django实现后台显示媒体文件
2020/04/07 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
python让函数不返回结果的方法
2020/06/22 Python
使用phonegap创建联系人的实现方法
2017/03/30 HTML / CSS
JD Sports法国:英国篮球和运动时尚的领导者
2017/09/28 全球购物
GIVENCHY纪梵希官方旗舰店:高定彩妆与贵族护肤品
2018/04/16 全球购物
Nisbets爱尔兰:英国最大的厨房和餐饮设备供应商
2019/01/26 全球购物
.net面试题
2015/12/22 面试题
我的中国梦演讲稿小学篇
2014/08/19 职场文书
2014年商场工作总结
2014/11/22 职场文书
老干部座谈会主持词
2015/07/03 职场文书
幼儿园卫生保健制度
2015/08/05 职场文书
多线程Spring通过@Scheduled实现定时任务
2022/05/25 Java/Android