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 动态多文件上传
Jan 18 PHP
PHP的博客ping服务代码
Feb 04 PHP
php读取mysql中文数据出现乱码的解决方法
Aug 16 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
May 10 PHP
php网站被挂木马后的修复方法总结
Nov 06 PHP
PHP中文乱码解决方案
Mar 05 PHP
php版微信公众平台入门教程之开发者认证的方法
Sep 26 PHP
PHP微信红包生成代码分享
Oct 06 PHP
php结合redis高并发下发帖、发微博的实现方法
Dec 15 PHP
php获取微信基础接口凭证Access_token
Aug 23 PHP
PHP基于cookie实现统计在线人数功能示例
Jan 16 PHP
Laravel框架模型的创建及模型对数据操作示例
May 07 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 similar_text 字符串的相似性比较函数
2010/05/26 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
ASP.NET jQuery 实例6 (实现CheckBoxList成员全选或全取消)
2012/01/13 Javascript
JS获取屏幕,浏览器窗口大小,网页高度宽度(实现代码)
2013/12/17 Javascript
浅谈javascript中的闭包
2015/05/13 Javascript
详细介绍jQuery.outerWidth() 函数具体用法
2015/07/20 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
2016/01/24 Javascript
基于jQuery实现select下拉选择可输入附源码下载
2016/02/03 Javascript
Json解析的方法小结
2016/06/22 Javascript
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
2016/07/07 Javascript
d3.js入门教程之数据绑定详解
2017/04/28 Javascript
Angular 4依赖注入学习教程之简介(一)
2017/06/04 Javascript
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
React中的refs的使用教程
2018/02/13 Javascript
vue router的基本使用和配置教程
2018/11/05 Javascript
详解Vue.js中引入图片路径的几种方式
2019/06/17 Javascript
vue-cli4使用全局less文件中的变量配置操作
2020/10/21 Javascript
仅用50行代码实现一个Python编写的计算器的教程
2015/04/17 Python
利用python画一颗心的方法示例
2017/01/31 Python
Python编程实现双击更新所有已安装python模块的方法
2017/06/05 Python
Python+Socket实现基于UDP协议的局域网广播功能示例
2017/08/31 Python
详解django.contirb.auth-认证
2018/07/16 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
2020/02/09 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
python修改微信和支付宝步数的示例代码
2020/10/12 Python
html5 css3网站菜单实现代码
2013/12/23 HTML / CSS
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
技校生自我鉴定范文
2013/09/26 职场文书
母亲追悼会答谢词
2014/01/27 职场文书
电气工程师岗位职责
2015/02/12 职场文书
谁动了我的奶酪读书笔记
2015/06/30 职场文书
2016年春季运动会广播稿
2015/08/19 职场文书
会议承办单位欢迎词
2019/07/09 职场文书
500字作文之难忘的同学
2019/12/20 职场文书
nginx实现动静分离的方法示例
2021/11/07 Servers
Ruby序列化和持久化存储 Marshal和Pstore介绍
2022/04/18 Ruby