相思资源网 Design By www.200059.com
本文实例分析了thinkPHP统计排行与分页显示功能。分享给大家供大家参考,具体如下:
1.分页参数
count 总数 firstRow 起始行 listRows 每一次获取记录数 list 每一页的记录(要与count对应一致就行)
2.分页对象
可以针对真实的数据表
也可以针对统计出来的数据表,或者说是虚拟的表
因为LIMIT是最后执行的,哪怕你进行group操作,哪怕你进行子查询
html
<include file="Public:head" title="" /> <style type="text/css"> .top { font-size: 18px; border-bottom: #ddd 1px solid; margin-bottom: -1px; font-weight: bold; } .top .title { margin:10px; border:1px solid #EF6C00; display:-webkit-box; border-radius: 3px; } .top .title .title_child { width: 50%; line-height:40px; -webkit-box-flex:1; display:block; color:#EF6C00; text-decoration:none; } .top .title .title_child.active { color:#FFF; background:#EF6C00; } .page{ margin-right: 10px; } .ranknum{ font-weight: bold; color:#F92672; } #myrank{ color: #FFF; font-weight:bold; background-color: #FBC853; } </style> <script type="text/javascript"> </script> <body> <div class="top text-center"> <div class="title"> <a class="title_child <if condition='$type neq 1'>active</if>" href="{sh::U('User/ranklist', array('type' => 0))}">月排行</a> <a class="title_child <if condition='$type eq 1'>active</if>" href="{sh::U('User/ranklist', array('type' => 1))}">总排行</a> </div> </div> <div id="myrank" class="alert alert-danger text-center"> 我的商户数:{sh:$my_user_count} 当前排名: {sh:$my_rank} </div> <div id="datalist"> <table class="table table-hover"> <thead> <tr> <th> #</th> <th>姓名</th> <th>商户数</th> </tr> </thead> <tbody> <volist name="list" id="vo"> <tr> <th scope="row" class="ranknum"> <if condition="$vo.rank eq 1"><img src="/UploadFiles/2021-04-02/gold.png">php
// 排行榜 public function ranklist(){ $type = $this->_get('type','trim'); $this->assign('type',$type); $opener_id = $this->opener_id; if($type == 0){ // 上月排行 $arrLastMonth = $this->getLastMonthStartEndDay(); $lastStartDay = $arrLastMonth['lastStartDay']; $lastEndDay = $arrLastMonth['lastEndDay'].' 23:59:59'; $b_time = strtotime($lastStartDay); $e_time = strtotime($lastEndDay); $where['b.addtime'] = array(array('gt',$b_time),array('lt',$e_time),'and'); } $where['a.status'] = array('eq','1'); M()->query('SET @rank =0;'); $subQuery = M()->table('sh_opener a')->join('sh_user b on a.id = b.opener_id')->where($where)->group('a.id')->order('usercount desc')->field('a.id,count(b.id) as usercount,a.name')->select(false); $all = M()->table(''.$subQuery.' a')->getField('a.id,a.usercount,a.name,(@rank:=IFNULL(@rank,0)+1) as rank'); $count = count($all); $Page = new Page($count, 10); $list = M()->table('sh_opener a')->join('sh_user b on a.id = b.opener_id')->where($where)->group('a.id')->order('usercount desc')->limit($Page->firstRow.','.$Page->listRows)->field('count(b.id) as usercount,a.name,a.id')->select(); foreach ($list as $k => $v) { $list[$k]['rank'] = $k + 1 + $Page->firstRow; } // 我的商户 $my_user_count = $all[$opener_id]['usercount']"" src="/UploadFiles/2021-04-02/2016122121722389.png">更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》、《smarty模板入门基础教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
相思资源网 Design By www.200059.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
相思资源网 Design By www.200059.com
暂无thinkPHP统计排行与分页显示功能示例的评论...