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循环获取GET和POST值的代码
Apr 09 PHP
php set_magic_quotes_runtime() 函数过时解决方法
Jul 08 PHP
深入php define()函数以及defined()函数的用法详解
Jun 05 PHP
基于PHP的简单采集数据入库程序
Jul 30 PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
Aug 28 PHP
php中实现可以返回多个值的函数实例
Mar 21 PHP
php里array_work用法实例分析
Jul 13 PHP
详解在PHP的Yii框架中使用行为Behaviors的方法
Mar 18 PHP
phpmailer绑定邮箱的实现方法
Dec 01 PHP
详细解读php的命名空间(一)
Feb 21 PHP
php json转换相关知识(小结)
Dec 21 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
Jan 15 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禁止页面缓存的代码
2011/10/23 PHP
php实现读取超大文件的方法
2014/07/28 PHP
简单谈谈php浮点数精确运算
2016/03/10 PHP
js cookies实现简单统计访问次数
2009/11/24 Javascript
javascript instanceof 与typeof使用说明
2010/01/11 Javascript
javascript 事件绑定问题
2011/01/01 Javascript
Notify - 基于jquery的消息通知插件
2011/10/18 Javascript
Javascript连接多个数组不用concat来解决
2014/03/24 Javascript
JavaScript动态修改背景颜色的方法
2015/04/16 Javascript
JavaScript中的函数嵌套使用
2015/06/04 Javascript
JS实现3D图片旋转展示效果代码
2015/09/22 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
2015/09/23 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
2016/08/05 Javascript
详解Vue-基本标签和自定义控件
2017/03/24 Javascript
微信小程序实现留言功能
2018/10/31 Javascript
详解JavaScript实现动态的轮播图效果
2019/04/29 Javascript
vue 实现搜索的结果页面支持全选与取消全选功能
2019/05/10 Javascript
在pycharm中开发vue的方法步骤
2020/03/04 Javascript
微信小程序动态评分展示/五角星展示/半颗星展示/自定义长度展示功能的实现
2020/07/22 Javascript
[03:39]DOTA2英雄梦之声_第05期_幽鬼
2014/06/23 DOTA
对python中的for循环和range内置函数详解
2018/04/17 Python
Python实现基于KNN算法的笔迹识别功能详解
2018/07/09 Python
Django单元测试中Fixtures的使用方法
2020/02/26 Python
Django框架models使用group by详解
2020/03/11 Python
Python flask框架实现浏览器点击自定义跳转页面
2020/06/04 Python
使用matplotlib的pyplot模块绘图的实现示例
2020/07/12 Python
python集合能干吗
2020/07/19 Python
python如何实现word批量转HTML
2020/09/30 Python
详解pandas apply 并行处理的几种方法
2021/02/24 Python
JACK & JONES英国官方网站:欧洲领先的男装生产商
2017/09/27 全球购物
墨尔本复古时尚品牌:Dangerfield
2018/12/12 全球购物
2014年计算机专业个人自我评价
2014/01/19 职场文书
人力资源经理的岗位职责
2014/03/02 职场文书
2016秋季小学开学寄语
2015/12/03 职场文书
干部作风纪律整顿心得体会
2016/01/23 职场文书
ubuntu下常用apt命令介绍
2022/06/05 Servers