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数组对百万数据进行排除重复数据的实现代码
Jun 08 PHP
PHP return语句的另一个作用
Jul 30 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
Jan 07 PHP
PHP判断IP并转跳到相应城市分站的方法
Mar 25 PHP
php简单实现快速排序的方法
Apr 04 PHP
php准确计算复活节日期的方法
Apr 18 PHP
PHP排序算法类实例
Jun 17 PHP
作为程序员必知的16个最佳PHP库
Dec 09 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
Nov 14 PHP
Laravel 队列使用的实现
Jan 08 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
Sep 16 PHP
PhpSpreadsheet设置单元格常用操作汇总
Nov 13 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/12/06 PHP
js修改地址栏URL参数解决url参数问题
2012/12/15 Javascript
JavaScript转换农历类实现及调用方法
2013/01/27 Javascript
7款吸引人眼球的jQuery/CSS3特效实例分享
2013/04/25 Javascript
清除div下面的所有标签的方法
2014/02/17 Javascript
Node.js中创建和管理外部进程详解
2014/08/16 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
2016/05/09 Javascript
NodeJS使用formidable实现文件上传
2016/10/27 NodeJs
jQuery简单自定义图片轮播插件及用法示例
2016/11/21 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】
2017/03/04 Javascript
JS计算距当前时间的时间差实例
2017/12/29 Javascript
vue 登录滑动验证实现代码
2018/08/24 Javascript
实例分析编写vue组件方法
2019/02/12 Javascript
Vue.js仿Select下拉框效果
2020/02/18 Javascript
python获取Linux下文件版本信息、公司名和产品名的方法
2014/10/05 Python
在Django中限制已登录用户的访问的方法
2015/07/23 Python
对numpy中的数组条件筛选功能详解
2018/07/02 Python
python进行TCP端口扫描的实现
2018/12/21 Python
Django实现发送邮件找回密码功能
2019/08/12 Python
pygame实现成语填空游戏
2019/10/29 Python
wxPython实现分隔窗口
2019/11/19 Python
Python restful框架接口开发实现
2020/04/13 Python
纯CSS3制作页面切换效果的实例代码
2019/05/30 HTML / CSS
意大利制造的男鞋和女鞋:SCAROSSO
2018/03/07 全球购物
Dockers鞋官网:Dockers Shoes
2018/11/13 全球购物
俄罗斯最大的在线手表商店:Bestwatch.ru
2020/01/11 全球购物
惠而浦美国官网:Whirlpool.com
2021/01/19 全球购物
任课老师推荐信范文
2013/11/24 职场文书
面试后感谢信怎么写
2014/02/01 职场文书
《走一步再走一步》教学反思
2014/02/15 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
共青团员自我评价范文
2014/09/14 职场文书
Golang中interface{}转为数组的操作
2021/04/30 Golang
Selenium浏览器自动化如何上传文件
2022/04/06 Python
JAVA 线程池(池化技术)的实现原理
2022/04/28 Java/Android