PHP实现上一篇下一篇的方法实例总结

 更新时间:2016年09月22日 11:32:04   作者:smiling  
这篇文章主要介绍了PHP实现上一篇下一篇的方法,结合实例形式总结分析了php获取上一篇下一篇文章SQL操作的相关查询技巧,需要的朋友可以参考下

本文实例分析了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数据库操作入门教程》、《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

相关文章

  • 对squid中refresh_pattern的一些理解和建议

    对squid中refresh_pattern的一些理解和建议

    用于确定一个页面进入cache后,它在cache中停留的时间。refresh_pattern规则仅仅应用到没有明确过时期限的响应。原始服务器能使用Expires头部,或者Cache-Control:max-age指令来指定过时期限。
    2009-04-04
  • PHP7生产环境队列Beanstalkd用法详解

    PHP7生产环境队列Beanstalkd用法详解

    在本篇文章里小编给大家分享的是关于PHP7生产环境队列Beanstalkd用法内容,需要的朋友们可以参考下。
    2020-05-05
  • PHP实现的简单网络硬盘

    PHP实现的简单网络硬盘

    这篇文章主要介绍了PHP实现的简单网络硬盘,涉及php动态创建文件夹及文件上传的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • php使用fgetcsv读取csv文件出现乱码的解决方法

    php使用fgetcsv读取csv文件出现乱码的解决方法

    这篇文章主要介绍了php使用fgetcsv读取csv文件出现乱码的解决方法,实例分析了造成乱码的原因与对应的解决方法,并给出了Linux平台下的乱码解决方法,需要的朋友可以参考下
    2014-11-11
  • php+js实现的无刷新下载文件功能示例

    php+js实现的无刷新下载文件功能示例

    这篇文章主要介绍了php+js实现的无刷新下载文件功能,结合实例形式分析了php无刷新下载文件的相关原理、实现方法及操作注意事项,需要的朋友可以参考下
    2019-08-08
  • 使用php将字符串拆分成数组的几种常见方法

    使用php将字符串拆分成数组的几种常见方法

    经常会遇到要把字符串分割成数组的情况,在Java中只要调用split(",")方法就能把字符串分割成数组,在JS中也很简单同样也是调用split( "," )方法就可以做到,在php中调用什么方法分割字符串呢?所以本小编给大家介绍了使用php将字符串拆分成数组的几种方法
    2023-11-11
  • php合并数组中相同元素的方法

    php合并数组中相同元素的方法

    这篇文章主要介绍了php合并数组中相同元素的方法,通过一个自定义函数遍历数组实现数组中相同项的合并,是非常实用的技巧,需要的朋友可以参考下
    2014-11-11
  • Windows7下的php环境配置教程

    Windows7下的php环境配置教程

    这篇文章主要介绍了Windows7下的php环境配置教程,本文讲解了Windows7下的PHP环境配置步骤,包含下载安装文件、配置PHP、添加到系统变量和检测安装是否成功等步骤,需要的朋友可以参考下
    2015-02-02
  • PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解

    PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解

    本篇文章是对PHPEXCEL的使用进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 部署PHP时的4个配置修改说明

    部署PHP时的4个配置修改说明

    这篇文章主要介绍了部署PHP时的4个配置修改说明,非常重要的四点配置修改,希望大家认真阅读本文。
    2015-10-10

最新评论