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 数组实例说明
Aug 18 PHP
如何设置mysql允许外网访问
Jun 04 PHP
codeigniter框架批量插入数据
Jan 09 PHP
Thinkphp中Create方法深入探究
Jun 16 PHP
codeigniter中实现一次性加载多个view的方法
Mar 20 PHP
PHP实现linux命令tail -f
Feb 22 PHP
Laravel中注册Facades的步骤详解
Mar 16 PHP
PHP编写的图片验证码类文件分享
Jun 06 PHP
php获取POST数据的三种方法实例详解
Dec 20 PHP
laravel 5.4中实现无限级分类的方法示例
Jul 27 PHP
PHP检测一个数组有没有定义的方法步骤
Jul 20 PHP
laravel框架中视图的基本使用方法分析
Nov 23 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
E路文章系统PHP
2006/12/11 PHP
PHP连接Access数据库的方法小结
2013/06/20 PHP
php中通用的excel导出方法实例
2017/12/30 PHP
JS分页控件 可用于无刷新分页
2013/07/23 Javascript
Table冻结表头示例代码
2013/08/20 Javascript
js/html光标定位的实现代码
2013/09/23 Javascript
js字符串转成JSON
2013/11/07 Javascript
JavaScript获取多个数组的交集简单实例
2013/11/11 Javascript
js获取select选中的option的text示例代码
2013/12/19 Javascript
js使用eval解析json实例与注意事项分享
2014/01/18 Javascript
JavaScript拆分字符串时产生空字符的解决方案
2014/09/26 Javascript
js实现文本框选中的方法
2015/05/26 Javascript
jQuery数组处理函数整理
2016/08/03 Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
2016/08/09 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
基于bootstrap按钮式下拉菜单组件的搜索建议插件
2017/03/25 Javascript
JavaScript使用ZeroClipboard操作剪切板
2017/05/10 Javascript
详解用Node.js实现Restful风格webservice
2017/09/29 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
Vue实现背景更换颜色操作
2020/07/17 Javascript
Python科学计算之NumPy入门教程
2017/01/15 Python
Python set常用操作函数集锦
2017/11/15 Python
使用python 和 lint 删除项目无用资源的方法
2017/12/20 Python
对python使用http、https代理的实例讲解
2018/05/07 Python
python Opencv计算图像相似度过程解析
2019/12/03 Python
使用sublime text3搭建Python编辑环境的实现
2021/01/12 Python
美国运动鞋和运动服零售商:Footaction
2017/04/07 全球购物
为您搜罗全球潮流時尚品牌:HBX
2019/12/04 全球购物
大学生个人总结的自我评价
2013/10/05 职场文书
双十佳事迹材料
2014/01/29 职场文书
党的群众路线教育实践活动个人整改措施落实情况
2014/11/04 职场文书
2014年社区民政工作总结
2014/12/02 职场文书
金榜题名主持词
2015/07/02 职场文书
咖啡厅里的创业计划书
2019/08/21 职场文书
解决jupyter notebook图片显示模糊和保存清晰图片的操作
2021/04/24 Python
python脚本框架webpy的url映射详解
2021/11/20 Python