最终实现效果:

前提:文章有分类,权重,时间排序等

流程:因为这个功能不算难,本来想着是否能伸手主义一次,直接去网上拷贝一下直接用,奈何百度一下发现很多都是直接用的id为参照,比当前id小的即为上一篇,反之则为下一篇,这样的话弊端就相当明显,如果在列表中加上分类,权重排序,时间排序等等,显而易见简单的根据id取值就有些误差,故重新整理一份,不仅tp5适用,其他程序也可以用,此处仅以tp5做说明

上代码:

$art_id = Request::instance()->param('art_id');
$detail_info = Db::name("article")->where("id",$art_id)->find();
//更新文章阅读次数
$update_read_num = ['read_num' => $detail_info['read_num']+1,
];
Db::name("article")->where("id",$art_id)->update($update_read_num);
//查找上一篇下一篇
/*查找出全部id,组合一个数组,根据索引去判断上一个或下一个是否存在*/
$where['lm'] = $detail_info['lm']; //查询条件之所属栏目
$where['pass'] = 'yes';    //查询条件之是否显示
$all_id = Db::name("article")->field('id')->where($where)->order('px desc,create_time')->select();$id_array = array();
foreach ($all_id as $key => $value) {if($value['id'] == $art_id){//定位当前//获取下一篇if(isset($all_id[$key+1])){$next_id = $all_id[$key+1]['id'];}else{$next_id = '';}//获取上一篇if(isset($all_id[$key-1])){$pre_id = $all_id[$key-1]['id'];}else{$pre_id = '';}}
}if($next_id != ''){$next_info = Db::name("article")->field('id,article_name')->where("id",$next_id)->find();
}else{$next_info = '';
}if($pre_id != ''){$pre_info = Db::name("article")->field('id,article_name')->where("id",$pre_id)->find();
}else{$pre_info = '';
}$this->assign("next_info",$next_info);
$this->assign("pre_info",$pre_info);

前台输出:

<div class="share"><div class="share-bg"><div class="share-href pull-left text-left">{if condition="$pre_info != ''"}<a href="{:url('home/index/news_show',['art_id'=>$pre_info.id])}">上一篇:{$pre_info.article_name}</a>{else /}<a href="#">上一篇:没有了</a>{/if}{if condition="$next_info != ''"}<a href="{:url('home/index/news_show',['art_id'=>$next_info.id])}">上一篇:{$next_info.article_name}</a>{else /}<a href="#">下一篇:没有了</a>{/if}</div><div class="text-right share-r pull-right"><a href="{:url('home/index/news',['art_type'=>$art_type_name.id])}">返回</a></div></div>
</div>

文章由优倍素材网:https://www.51sucai.com.cn 整理,转发请注明出处。

tp5上一篇下一篇;php上一篇下一篇相关推荐

  1. javaweb和ajax使用查询出来的数据做下拉菜单_区块链浏览器实用指南篇:利用链上数据把握减半行情...

    进入2020年,加密货币市场最热的话题当属"减半"了.在减半行情的推动下,以BTC为首的减半币种展现出了极强的上行趋势.如何抓住这一波行情,评估正确时机?当然,这个问题的答案可以说 ...

  2. docker omv 防火墙_我的软路由折腾之旅 篇三:在openmediavault上通过Docker实现OPENWRT旁路由功能...

    我的软路由折腾之旅 篇三:在openmediavault上通过Docker实现OPENWRT旁路由功能 2020-06-20 11:28:38 57点赞 415收藏 74评论 你是AMD Yes党?还 ...

  3. 当你的Stream遇上Lambda就爱上了,超级无敌酷酷 - 第418篇

    历史文章(累计400+篇文章) <国内最全的Spring Boot系列之一> <国内最全的Spring Boot系列之二> <国内最全的Spring Boot系列之三&g ...

  4. 第118篇 在区块链浏览器上调用合约

    本文环境:参考文档 "第111篇 在区块链浏览器上发布合约源码" 合约地址:0x9B78a00a63D38A8BF56965c891B8794C603EF2c6 1.定位合约及 R ...

  5. 百度云主机(配置、调试环境)文件上传(快速建站,实现首页访问) - FTP篇

    百度云主机BCH实例(配置.调试环境)FTP文件上传,如何操作? 百度云虚拟主机参考文档:产品手册大全 总结步骤: 在你首次登录控制面板,系统会要求初始化您的密码,包括设定用户账号.管理密码.FTP账 ...

  6. 【Tips】史上最全H1B问题合辑——保持H1B身份终级篇

    [Tips]史上最全H1B问题合辑--保持H1B身份终级篇 2015-04-10留学小助手留学小助手 留学小助手 微信号 liuxue_xiaozhushou 功能介绍 提供最真实全面的留学干货,帮您 ...

  7. AutoSAR系列讲解(深入篇)14.5-Mcal Dio代码分析(下)

    AutoSAR系列讲解(深入篇)14.5-Mcal Dio代码分析(下) Mcal Dio代码分析(下) 三.静态代码 四.使用方法 1.初始化 2.运行 Mcal Dio代码分析(下) ->返 ...

  8. ubuntu下搭建android开发环境(四)核心篇安装AndroidStudio、sdk、jdk

    [置顶] ubuntu下搭建android开发环境(四)核心篇安装AndroidStudio.sdk.jdk(by 星空武哥) <div class="article_manage c ...

  9. 群晖添加php种子,NAS 篇一:群晖上远程制作PT种子的方法介绍

    NAS 篇一:群晖上远程制作PT种子的方法介绍 2019-11-23 17:15:32 2点赞 21收藏 8评论 如何才能快速换一种生活方式?参加#牛年Flag#征稿活动,征集你2021年的购物学习生 ...

  10. 阿里云ECS服务器Linux环境下配置php服务器(三)--项目部署篇

    在前两篇里,我们分别介绍了如何购买阿里云服务器,安装基本软件和配置(请看阿里云ECS服务器Linux环境下配置php服务器(一)--基础配置篇) 以及如何安装使用phpMyAdmin(请看阿里云ECS ...

最新文章

  1. php sku添加,php – 在单个产品页面中显示SKU下的自定义字段值
  2. R语言R-markdown实战示例、R-markdown、R-markdown生成结果汇报的HTML文件
  3. 使用超图桌面版制作点图层并发布为地图服务
  4. WebLogic 12c 添加默认应用
  5. 四、极大似然参数估计
  6. Faster R-CNN代码例子
  7. 如何快速完成企业应用IPv6改造
  8. Docker 容器使用
  9. thinkphp v5.0.11漏洞_Thinkphp 5.0远程代码执行漏洞
  10. 《Cisco防火墙》一8.7 通过NAT规则定义连接限制
  11. 怎么让电脑运行速度变快_加快电脑运行速度的6个秘笈,系统安装,电脑维修必备技巧...
  12. git为私有仓库设置密码_Jenkins与Git最佳实践-1
  13. 功能测试分析和测试用例编写模板
  14. 搭建一个网站步骤 制作网页完整步骤
  15. html超链接为变量,如何向超链接添加变量值
  16. 我的年终总结之一波三折的2018
  17. 保姆级教程:python读取并绘制nc数据
  18. 炫酷粒子表白,双十一脱单靠它了!
  19. 电流型和电压型PHY
  20. archlinux安装kde常见的问题(无法登录,黑屏,无法调节亮度等)

热门文章

  1. Windows环境FTP服务用户隔离设置(支持多用户登录)
  2. 从小听到大的经典老歌 经典得不可复制
  3. 李宏毅_机器学习_作业3(详解)_HW3 Image Classification
  4. linux 运行函数名,JavaScript匿名函数的各种执行形式
  5. MFC—使用DrawText和TextOut编辑文字
  6. skewness and kurtosis
  7. 2021年春招总结帖!分享一下我的腾讯、携程、美团面经,本人已拿offer,春招正式结束!
  8. 一个月薪3W,但有点失败的北京程序员的真实生活!!!
  9. 主分区跟扩展分区的关系以及逻辑分区
  10. 三分钟快速开发手机号注册登录功能