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 26 PHP
curl实现站外采集的方法和技巧
Jan 31 PHP
PHP取余函数介绍MOD(x,y)与x%y
May 15 PHP
php去除数组中重复数据
Nov 18 PHP
PHP生成器简单实例
May 13 PHP
使用php-timeit估计php函数的执行时间
Sep 06 PHP
php使用APC实现实时上传进度条功能
Oct 26 PHP
PHP加密技术的简单实现
Sep 04 PHP
PHP 二维array转换json的实例讲解
Aug 21 PHP
浅谈Laravel核心解读之Console内核
Dec 02 PHP
php计数排序算法的实现代码(附四个实例代码)
Mar 31 PHP
基于PHP实现发微博动态代码实例
Dec 11 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
关于svn冲突的解决方法
2013/06/21 PHP
PHP get_html_translation_table()函数用法讲解
2019/02/16 PHP
onpropertypchange
2006/07/01 Javascript
JavaScript 继承详解(四)
2009/07/13 Javascript
Jquery拖拽并简单保存的实现代码
2010/11/28 Javascript
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
使用基于jquery的gamequery插件做JS乒乓球游戏
2011/07/31 Javascript
自己动手实现jQuery Callbacks完整功能代码详解
2013/11/25 Javascript
快速解决jQuery与其他库冲突的方法介绍
2014/01/02 Javascript
jquery获取html元素的绝对位置和相对位置的方法
2014/06/20 Javascript
基于JS实现导航条flash导航条
2016/06/17 Javascript
基于JavaScript Array数组方法(新手必看篇)
2016/08/20 Javascript
谈谈第三方App接入微信登录 解读
2016/12/27 Javascript
jQuery插件zTree实现清空选中第一个节点所有子节点的方法
2017/03/08 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
使用vue-cli打包过程中的步骤以及问题的解决
2018/05/08 Javascript
从vue源码看props的用法
2019/01/09 Javascript
浅谈javascript错误处理
2019/08/11 Javascript
JavaScript this使用方法图解
2020/02/04 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
2020/03/08 Javascript
深入讲解Python函数中参数的使用及默认参数的陷阱
2016/03/13 Python
python中numpy基础学习及进行数组和矢量计算
2017/02/12 Python
python绘制多个子图的实例
2019/07/07 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
2019/11/05 Python
python speech模块的使用方法
2020/09/09 Python
python修改微信和支付宝步数的示例代码
2020/10/12 Python
彻底解决pip下载pytorch慢的问题方法
2021/03/01 Python
应届大学生简历中的自我评价
2014/01/15 职场文书
2014年大班元旦活动方案
2014/02/26 职场文书
员工考核评语大全
2014/04/26 职场文书
解除聘用合同证明书范本
2014/09/11 职场文书
大四优秀党员个人民主评议
2014/09/19 职场文书
食品质检员岗位职责
2015/04/08 职场文书
熟背这些句子,让您的英语口语突飞猛进(135句)
2019/09/06 职场文书
Spring中的使用@Async异步调用方法
2021/11/01 Java/Android
使用 Apache Dubbo 实现远程通信(微服务架构)
2022/02/12 Servers