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中cookie的作用域
Mar 27 PHP
php 传值赋值与引用赋值的区别
Dec 29 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
Jun 23 PHP
destoon供应信息title调用出公司名称的方法
Aug 22 PHP
分享php邮件管理器源码
Jan 06 PHP
PHP使用http_build_query()构造URL字符串的方法
Apr 02 PHP
一个实用的php验证码类
Jul 06 PHP
Laravel中前端js上传图片到七牛云的示例代码
Sep 04 PHP
PHP中上传文件打印错误错误类型分析
Apr 14 PHP
thinkphp5.1框架模板赋值与变量输出示例
May 25 PHP
Thinkphp5框架异常处理操作实例分析
Jun 03 PHP
解析laravel使用workerman用户交互、服务器交互
Apr 28 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 字符串编码截取函数(兼容utf-8和gb2312)
2009/05/02 PHP
PHP 飞信好友免费短信API接口开源版
2010/07/22 PHP
php采用curl模仿登录人人网发布动态的方法
2014/11/07 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
PHP 实现 WebSocket 协议原理与应用详解
2020/04/22 PHP
javascript add event remove event
2008/04/07 Javascript
JavaScript跨平台的开源框架NativeScript
2015/03/24 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
2015/08/20 Javascript
js如何打印object对象
2015/10/16 Javascript
深入学习jQuery Validate表单验证
2016/01/18 Javascript
javascript自动切换焦点控制效果完整实例
2016/02/02 Javascript
Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发
2016/08/31 Javascript
用js实现简单算法的实例代码
2016/09/24 Javascript
详解node HTTP请求客户端 - Request
2017/05/05 Javascript
基于vue 动态加载图片src的解决方法
2018/02/05 Javascript
解决JS表单验证只有第一个IF起作用的问题
2018/12/04 Javascript
Vue 报错TypeError: this.$set is not a function 的解决方法
2018/12/17 Javascript
vue实现跨域的方法分析
2019/05/21 Javascript
浅谈vue中组件绑定事件时是否加.native
2019/11/09 Javascript
Vue将props值实时传递 并可修改的操作
2020/08/09 Javascript
python求pi的方法
2014/10/08 Python
python使用multiprocessing模块实现带回调函数的异步调用方法
2015/04/18 Python
Django中cookie的基本使用方法示例
2018/02/03 Python
Charlotte Tilbury英国官网:英国彩妆品牌
2017/05/26 全球购物
《学会合作》教学反思
2014/04/12 职场文书
《夹竹桃》教学反思
2014/04/20 职场文书
空气环保标语
2014/06/12 职场文书
2014年外联部工作总结
2014/11/17 职场文书
优秀教师事迹材料
2014/12/15 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
中小学生安全教育观后感
2015/06/17 职场文书
关于分班的感言
2015/08/04 职场文书
《花钟》教学反思
2016/02/17 职场文书
七年级作文之关于奶奶
2019/10/29 职场文书
详解PyTorch模型保存与加载
2022/04/28 Python
Vue ECharts实现机舱座位选择展示功能
2022/05/15 Vue.js