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字符串处理的10个简单方法
Jun 30 PHP
PHP之COOKIE支持详解
Sep 20 PHP
采用memcache在web集群中实现session的同步会话
Jul 05 PHP
php实现的发送带附件邮件类实例
Sep 22 PHP
PHP 实现类似js中alert() 提示框
Mar 18 PHP
PHP调用.NET的WebService 简单实例
Mar 27 PHP
php 在线导入mysql大数据程序
Jun 11 PHP
8个必备的PHP功能开发
Oct 02 PHP
php版微信数据统计接口用法示例
Oct 12 PHP
PHP命名空间namespace及use的简单用法分析
Aug 03 PHP
PHP7.3.10编译安装教程
Oct 08 PHP
laravel解决迁移文件一次删除创建字段报错的问题
Oct 24 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判断字符以及字符串的包含方法属性
2008/08/30 PHP
php的一个简单加密解密代码
2014/01/14 PHP
php使用glob函数遍历文件和目录详解
2016/09/23 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
2017/04/20 PHP
jquery异步调用页面后台方法&amp;#8207;(asp.net)
2011/03/01 Javascript
事件绑定之小测试  onclick &amp;&amp; addEventListener
2011/07/31 Javascript
jqGrid表格应用之新增与删除数据附源码下载
2015/12/02 Javascript
jQuery插件 Jqplot图表实例
2016/06/18 Javascript
AngularJS ng-bind-template 指令详解
2016/07/30 Javascript
jQuery实现全选、反选和不选功能
2017/08/16 jQuery
JavaScript实现微信红包算法及问题解决方法
2018/04/26 Javascript
使用vue-router beforEach实现判断用户登录跳转路由筛选功能
2018/06/25 Javascript
Vue插件从封装到发布的完整步骤记录
2019/02/28 Javascript
js的继承方法小结(prototype、call、apply)(推荐)
2019/04/17 Javascript
JavaScript中工厂函数与构造函数示例详解
2019/05/06 Javascript
JavaScript获取某一天所在的星期
2019/09/05 Javascript
javascript使用canvas实现饼状图效果
2020/09/08 Javascript
python之PyMongo使用总结
2017/05/26 Python
[原创]pip和pygal的安装实例教程
2017/12/07 Python
Python抽象和自定义类定义与用法示例
2018/08/23 Python
在PyTorch中使用标签平滑正则化的问题
2020/04/03 Python
python爬虫容易学吗
2020/06/02 Python
基于CSS3实现图片模糊过滤效果
2015/11/19 HTML / CSS
Nike挪威官网:Nike.com (NO)
2018/11/26 全球购物
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
《将心比心》教学反思
2014/04/08 职场文书
个人课题方案
2014/05/08 职场文书
学习张丽丽心得体会
2014/09/03 职场文书
机关作风整顿个人剖析材料
2014/10/06 职场文书
2014幼儿园小班工作总结
2014/11/10 职场文书
2015年教师节感恩寄语
2015/03/23 职场文书
医院岗前培训心得体会
2016/01/08 职场文书
幼儿园教师暑期培训心得体会
2016/01/09 职场文书
Redis Cluster 字段模糊匹配及删除
2021/05/27 Redis
TypeScript实用技巧 Nominal Typing名义类型详解
2022/09/23 Javascript