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数据库转移,access,sql server 转 MySQL 的图文教程
Sep 02 PHP
php二维数组排序与默认自然排序的方法介绍
Apr 27 PHP
基于session_unset与session_destroy的区别详解
Jun 03 PHP
php Session存储到Redis的方法
Nov 04 PHP
php curl post 时出现的问题解决
Jan 30 PHP
php需登录的文件上传管理系统
Mar 21 PHP
PHP实现冒泡排序的简单实例
May 26 PHP
CI框架入门之MVC简单示例
Nov 21 PHP
php中this关键字用法分析
Dec 07 PHP
Laravel 队列使用的实现
Jan 08 PHP
PHP封装的分页类与简单用法示例
Feb 25 PHP
PHP 对象接口简单实现方法示例
Apr 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 @ at 记号的作用示例介绍
2014/10/10 PHP
深入讲解PHP Session及如何保持其不过期的方法
2015/08/18 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
2015/08/23 PHP
微信开发之网页授权获取用户信息(二)
2016/01/08 PHP
CodeIgniter配置之database.php用法实例分析
2016/01/20 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
2017/02/04 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
JS测试显示屏分辨率以及屏幕尺寸的方法
2013/11/22 Javascript
jQuery函数的第二个参数获取指定上下文中的DOM元素
2014/05/19 Javascript
浅析javascript中function 的 length 属性
2014/05/27 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
2015/08/24 Javascript
JQuery实现左右滚动菜单特效
2015/09/28 Javascript
js 声明数组和向数组中添加对象变量的简单实例
2016/07/28 Javascript
详解js的异步编程技术的方法
2017/02/09 Javascript
在vue项目中安装使用Mint-UI的方法
2017/12/27 Javascript
详解vue移动端项目代码拆分记录
2019/03/15 Javascript
Node.js 多进程处理CPU密集任务的实现
2019/05/26 Javascript
vue使用高德地图根据坐标定位点的实现代码
2019/08/22 Javascript
vue实现在v-html的html字符串中绑定事件
2019/10/28 Javascript
Vue中rem与postcss-pxtorem的应用详解
2019/11/20 Javascript
Webpack中SplitChunksPlugin 配置参数详解
2020/03/24 Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
2020/05/10 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
2020/09/21 Javascript
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
Python实现的朴素贝叶斯分类器示例
2018/01/06 Python
Python实现二维曲线拟合的方法
2018/12/29 Python
Python3 修改默认环境的方法
2019/02/16 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
解决Python中回文数和质数的问题
2019/11/24 Python
python 实现按对象传值
2019/12/26 Python
Python 2.6.6升级到Python2.7.15的详细步骤
2020/12/14 Python
含精油的天然有机化妆品:Indemne
2019/08/27 全球购物
《夜晚的实验》教学反思
2014/02/19 职场文书
医学生就业推荐表自我鉴定
2014/03/26 职场文书
简单租房协议书范本
2014/08/20 职场文书
公司周年庆活动方案
2014/08/25 职场文书