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 08 PHP
探讨PHP删除文件夹的三种方法
Jun 09 PHP
将酷狗krc歌词解析并转换为lrc歌词php源码
Jun 20 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
Sep 16 PHP
PHP中使用curl入门教程
Jul 02 PHP
PHP小偷程序的设计与实现方法详解
Oct 15 PHP
php获取当前url地址的方法小结
Jan 10 PHP
ThinkPHP 3.2.2实现事务操作的方法
May 05 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
Nov 24 PHP
一次因composer错误使用引发的问题与解决
Mar 06 PHP
laravel框架的安装与路由实例分析
Oct 11 PHP
Laravel配合jwt使用的方法实例
Oct 25 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+JS实现搜索自动提示(实例)
2013/06/09 PHP
PHP实现Javascript中的escape及unescape函数代码分享
2015/02/10 PHP
PHP 5.6.11 访问SQL Server2008R2的几种情况详解
2016/08/08 PHP
PHP实现八皇后算法
2019/05/06 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
2021/03/09 PHP
SWFObject Flash js调用类
2008/07/08 Javascript
基于JQuery 的消息提示框效果代码
2011/07/31 Javascript
JavaScript 数组详解
2013/10/10 Javascript
jquery bind(click)传参让列表中每行绑定一个事件
2014/08/06 Javascript
TypeError document.getElementById(...) is null错误原因
2015/05/18 Javascript
全面解析Bootstrap排版使用方法(标题)
2015/11/30 Javascript
jQuery 移动端artEditor富文本编辑器
2016/01/11 Javascript
js删除数组元素、清空数组的简单方法(必看)
2016/07/27 Javascript
js在ie下打开对话窗口的方法小结
2016/10/24 Javascript
基于cookie实现zTree树刷新后展开状态不变
2017/02/28 Javascript
详解vue-cli中配置sass
2017/06/21 Javascript
vue父组件中获取子组件中的数据(实例讲解)
2017/09/27 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
Angular动态绑定样式及改变UI框架样式的方法小结
2018/09/03 Javascript
如何处理Python3.4 使用pymssql 乱码问题
2016/01/08 Python
python中的变量如何开辟内存
2018/06/26 Python
Python中print和return的作用及区别解析
2019/05/05 Python
pandas删除行删除列增加行增加列的实现
2019/07/06 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
Django 删除upload_to文件的步骤
2020/03/30 Python
Python HTMLTestRunner可视化报告实现过程解析
2020/04/10 Python
python 负数取模运算实例
2020/06/03 Python
python框架flask入门之路由及简单实现方法
2020/06/07 Python
python opencv实现图像配准与比较
2021/02/09 Python
2014红色之旅心得体会
2014/10/07 职场文书
2014小学教师个人工作总结
2014/11/10 职场文书
十月围城观后感
2015/06/08 职场文书
2015暑期社会实践通讯稿
2015/07/18 职场文书
如何用python识别滑块验证码中的缺口
2021/04/01 Python
TV动画《史上最强大魔王转生为村民A》番宣CM公布
2022/04/01 日漫