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 相关文章推荐
phpmyadmin操作流程
Oct 09 PHP
PHP面向对象分析设计的61条军规小结
Jul 17 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
Jun 29 PHP
解析php中curl_multi的应用
Jul 17 PHP
php比较两个绝对时间的大小
Jan 31 PHP
destoon实现调用图文新闻的方法
Aug 21 PHP
网站防止被刷票的一些思路与方法
Jan 08 PHP
php实现的一个简单json rpc框架实例
Mar 30 PHP
php获取远程文件的内容和大小
Nov 03 PHP
PHP处理CSV表格文件的常用操作方法总结
Jul 01 PHP
Yii+MYSQL锁表防止并发情况下重复数据的方法
Jul 14 PHP
thinkphp框架使用JWTtoken的方法详解
Oct 10 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
jq的get传参数在utf-8中乱码问题的解决php版
2008/07/23 PHP
CheckBox 如何实现全选?
2006/06/23 Javascript
mouse_on_title.js
2006/08/25 Javascript
JavaScript中检测变量是否存在遇到的一些问题
2013/11/11 Javascript
Node.js中的事件驱动编程详解
2014/08/16 Javascript
使用jQueryMobile实现滑动翻页效果的方法
2015/02/04 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
2015/03/04 Javascript
jQuery实现带渐显效果的人物多级关系图代码
2015/10/16 Javascript
jquery特效 点击展示与隐藏全文
2015/12/09 Javascript
AngularJS 中文API参考手册
2016/07/28 Javascript
浅谈jquery设置和获得checkbox选中的问题
2016/08/19 Javascript
Javascript将图片的绝对路径转换为base64编码的方法
2018/01/11 Javascript
vue的diff算法知识点总结
2018/03/29 Javascript
详解Vue SSR( Vue2 + Koa2 + Webpack4)配置指南
2018/11/13 Javascript
微信小程序上传多图到服务器并获取返回的路径
2019/05/05 Javascript
javascript的this关键字详解
2019/05/20 Javascript
js blob类型url的视频下载问题的解决
2019/11/29 Javascript
详解vue父子组件状态同步的最佳方式
2020/09/10 Javascript
python3使用urllib示例取googletranslate(谷歌翻译)
2014/01/23 Python
一则python3的简单爬虫代码
2014/05/26 Python
python实现图片处理和特征提取详解
2017/11/13 Python
python使用matplotlib画柱状图、散点图
2019/03/18 Python
python实现根据文件格式分类
2019/10/31 Python
python每5分钟从kafka中提取数据的例子
2019/12/23 Python
Python 一行代码能实现丧心病狂的功能
2020/01/18 Python
使用python的turtle函数绘制一个滑稽表情
2020/02/28 Python
Django如何实现防止XSS攻击
2020/10/13 Python
锐步英国官网:Reebok英国
2019/11/29 全球购物
优秀学生获奖感言
2014/02/15 职场文书
事业单位考核材料
2014/05/21 职场文书
银行反四风对照检查材料
2014/09/29 职场文书
前台接待岗位职责范本
2015/04/03 职场文书
幼儿园园长工作总结2015
2015/05/25 职场文书
田径运动会通讯稿
2015/07/18 职场文书
JPA如何使用entityManager执行SQL并指定返回类型
2021/06/15 Java/Android
Apache Pulsar集群搭建部署详细过程
2022/02/12 Servers