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 相关文章推荐
基于mysql的bbs设计(五)
Oct 09 PHP
需要注意的几个PHP漏洞小结
Feb 05 PHP
PHP中设置时区方法小结
Jun 03 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
Jul 23 PHP
Destoon实现多表查询示例
Aug 21 PHP
php文件缓存类用法实例分析
Apr 22 PHP
通过PHP简单实例介绍文件上传
Dec 16 PHP
Laravel中的Auth模块详解
Aug 17 PHP
lnmp安装多版本PHP共存的方法详解
Aug 02 PHP
网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
Oct 23 PHP
关于laravel 数据库迁移中integer类型是无法指定长度的问题
Oct 09 PHP
Yii框架布局文件的动态切换操作示例
Nov 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
在PHP中执行系统外部命令
2006/10/09 PHP
php下使用无限生命期Session的方法
2007/03/16 PHP
php 读取文件头判断文件类型的实现代码
2013/08/05 PHP
PHP验证码无法显示的原因及解决办法
2017/08/11 PHP
jQuery Ajax之load()方法
2009/10/12 Javascript
将字符串转换成gb2312或者utf-8编码的参数(js版)
2013/04/10 Javascript
js图片模糊切换显示特效的方法
2015/02/17 Javascript
Jquery 1.9.1源码分析系列(十二)之筛选操作
2015/12/02 Javascript
酷! 不同风格页面布局幻灯片特效js实现
2021/02/19 Javascript
JavaScript实现的可变动态数字键盘控件方式实例代码
2017/07/15 Javascript
基于bootstrap实现多个下拉框同时搜索功能
2017/07/19 Javascript
NodeJS实现视频转码的示例代码
2017/11/18 NodeJs
在vue-cli项目中使用bootstrap的方法示例
2018/04/21 Javascript
微信小程序获取用户openid的实现
2018/12/24 Javascript
详解微信图片防盗链“此图片来自微信公众平台 未经允许不得引用”的解决方案
2019/04/04 Javascript
在Python中使用SQLite的简单教程
2015/04/29 Python
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
2018/04/08 Python
和孩子一起学习python之变量命名规则
2018/05/27 Python
解析python实现Lasso回归
2019/09/11 Python
下载官网python并安装的步骤详解
2019/10/12 Python
python3 tcp的粘包现象和解决办法解析
2019/12/09 Python
使用python 将图片复制到系统剪贴中
2019/12/13 Python
python numpy数组中的复制知识解析
2020/02/03 Python
Python查找不限层级Json数据中某个key或者value的路径方式
2020/02/27 Python
python如何提取英语pdf内容并翻译
2020/03/03 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
2020/12/07 Python
Python抖音快手代码舞(字符舞)的实现方法
2021/02/07 Python
思想专业自荐信范文
2013/12/25 职场文书
宿舍保安职务说明书
2014/02/25 职场文书
最经典的大学生职业生涯规划范文
2014/03/05 职场文书
团队拓展活动总结
2014/08/27 职场文书
支部书记四风对照材料
2014/08/28 职场文书
幼儿园中班教师个人总结
2015/02/05 职场文书
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫