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合并数组array_merge函数运算符加号与的区别
Oct 31 PHP
phpMyAdmin链接MySql错误 个人解决方案
Dec 28 PHP
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
Mar 19 PHP
php小技巧 把数组的键和值交换形成了新的数组,查找值取得键
Jun 02 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
Jul 03 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
Sep 28 PHP
phpQuery占用内存过多的处理方法
Nov 13 PHP
PHP中source #N问题的解决方法
Jan 27 PHP
PHP 获取ip地址代码汇总
Jul 05 PHP
PHP封装的数据库保存session功能类
Jul 11 PHP
PHPStrom 新建FTP项目以及在线操作教程
Oct 16 PHP
php7 图形用户界面GUI 开发示例
Feb 22 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实现MVC开发得最简单的方法――模型
2007/04/10 PHP
PHP高级对象构建 多个构造函数的使用
2012/02/05 PHP
php不用正则验证真假身份证
2013/11/06 PHP
php获取QQ头像并显示的方法
2014/12/23 PHP
php实现每天自动变换随机问候语的方法
2015/05/12 PHP
PHP之十六个魔术方法详细介绍
2016/11/01 PHP
PHP获取二叉树镜像的方法
2018/01/17 PHP
PHP实现多图上传和单图上传功能
2018/05/17 PHP
PHP实现的杨辉三角求解算法分析
2019/03/11 PHP
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
2009/11/12 Javascript
jQuery 1.4 15个你应该知道的新特性(译)
2010/01/24 Javascript
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
纯JS实现的批量图片预览加载功能
2011/08/14 Javascript
常用Extjs工具:Extjs.util.Format使用方法
2012/03/22 Javascript
JS中处理与当前时间间隔的函数代码
2012/05/23 Javascript
浅析node连接数据库(express+mysql)
2015/11/30 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
angularjs+bootstrap实现自定义分页的实例代码
2017/06/19 Javascript
Angular6 写一个简单的Select组件示例
2018/08/20 Javascript
详解如何在vue项目中使用lodop打印插件
2018/09/27 Javascript
js实现时分秒倒计时
2019/12/03 Javascript
JavaScript回调函数callback用法解析
2020/01/14 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
2020/05/18 Javascript
详解vue3.0 diff算法的使用(超详细)
2020/07/01 Javascript
Python实现检测服务器是否可以ping通的2种方法
2015/01/01 Python
Python实现简单文本字符串处理的方法
2018/01/22 Python
Python合并多个Excel数据的方法
2018/07/16 Python
基于Python安装pyecharts所遇的问题及解决方法
2019/08/12 Python
使用PyTorch实现MNIST手写体识别代码
2020/01/18 Python
python3爬虫GIL修改多线程实例讲解
2020/11/24 Python
ONLY德国官方在线商店:购买时尚女装
2017/09/21 全球购物
adidas马来西亚官网:adidas MY
2020/09/12 全球购物
工作自我评价范文
2015/03/05 职场文书
2016医师资格考试考生诚信考试承诺书
2016/03/25 职场文书
MySQL开启事务的方式
2021/06/26 MySQL
Python编程源码报错解决方法总结经验分享
2021/10/05 Python