利用page计算分页

$p=input('p')?input('p'):1;
$limit=6;
$res=db('points_log')->where(['p_uid'=>$uid,'del_id'=>0])->field('p_log_id,p_uid,integral_source,integral,creat_time')->page($p,$limit)->order('creat_time desc')->select();

$count=db('points_log')->where(['p_uid'=>$uid,'del_id'=>0])->count();

//计算分页总数
$page=ceil($count/$limit);

var_dump($page);

第二种 limit计算分页

        $list_rows= $data['list_rows'] ? $data['list_rows'] : 10;
        $page= $data['page'] > 0 ? $data['page'] : 1;
        $result = NavModel::where(['typeid' => $data['typeid'], 'status' => 1])
      //因为要从传默认是1 这个需要减1
                    ->limit(($page-1)*$list_rows,$list_rows)
                    ->select()->toArray();
        if (count($result) >= 1) {
            foreach ($result as &$v) {
                if ($v['thumb']) {
                    $v['thumb'] = get_file_url($v['thumb']);
                }
                $v = $this->filter($v, $this->fname);
            }
            return ApiReturn::r(1, $result, '请求成功');
        }

thinkphp 使用  paginate 计算分页

$config = [
'list_rows' => $data['list_rows'] ? $data['list_rows'] : 10,
'page' => $data['page'] > 0 ? $data['page'] : 1
];
$list = $commentModle
->where($where)
->paginate($config)//分页数自己确定
->each(
function($item){
        //存入数据到name里面
$item['name']= Db::name('community_comment')->where(['pid' => $item['id']])->limit(5)->select();
    require  $item;
        }
);

如果这个需要传值
$config = [
'list_rows' => $data['list_rows'] ? $data['list_rows'] : 10,
'page' => $data['page'] > 0 ? $data['page'] : 1
];
$a=1;
$list = $commentModle
->where($where)
->paginate($config)//分页数自己确定
->each(
function($item,$a){
        //存入数据到name里面
$item['name']= Db::name('community_comment')->where(['pid' => $item['id']])->limit(5)->select();
    require  $item;
        }
);

或者

$config = [
'list_rows' => $data['list_rows'] ? $data['list_rows'] : 10,
'page' => $data['page'] > 0 ? $data['page'] : 1
];
$a=1;
$list = $commentModle
->where($where)
->paginate($config)//分页数自己确定
->each(
function($item)use($a){
        //存入数据到name里面
$item['name']= Db::name('community_comment')->where(['pid' => $item['id']])->limit(5)->select();
    require  $item;
        }
);


另外一种方式
$config = [
'list_rows' => $data['list_rows'] ? $data['list_rows'] : 10,
'page' => $data['page'] > 0 ? $data['page'] : 1
];
$list = $commentModle
->where($where)
->paginate($config)//分页数自己确定
->each(
function($item,$key){
        //存入数据到name里面
$item['name']= Db::name('community_comment')->where(['pid' => $item['id']])->limit(5)->select();
        }
);

如果pageinate 这个方法从不能接收使用
在pageinate
就可以使用all();这个方法赋值但是分页就要重新赋值了如下

$res = $list->all();
   foreach ($res as $k => $v){
  if($v['agent_id'] == $v['adviser_id']){
   $res[$k]['user_nickname'] = "";
   }else{
   if(($user_type == 1) && ($v['agent_id'])){
     $res[$k]['agent_name'] = Db::name('user')->where('id',$v['agent_id'])->value('user_name');
    }
   if(($user_type == 2) && ($v['adviser_id'])){
      $res[$k]['adviser_name'] = Db::name('user')->where('id',$v['adviser_id'])->value('user_name');
         }
       }
     $res[$k]['user_img']=get_file_url(411);

}
  $return_list['data'] = $res; 数据
  $return_list['total'] = Db::name('user_customer')->where($whereid)->where($whereproduct)->where($wheresearch)->where($whereimportance)->count();多少条数据
  $return_list['per_page'] = $config['list_rows'];分页显示数量
  $return_list['current_page'] = $config['page'];分页
  $return_list['last_page'] = ceil($return_list['total']/$return_list['per_page']);分页数量


还有一种方法
     /*
因为数据列表刷新的时候
例如: 有11条数据 如果我请求第二页的时候 会删除一条数据之后第二页会请求不到 就要以以id为进行分页
* */
$id=input('id')?input('id'):1;
$limit=10;
$res=db('points_log')
->where("id","<",$id)
->field('p_log_id,p_uid,integral_source,integral,creat_time')
->limit($limit)
->order('creat_time desc')
->select();

$count=db('points_log')->where(['p_uid'=>$uid,'del_id'=>0])->count();

//计算分页总数
$page=ceil($count/$limit);


thinkphphp 计算分页 和分页总数 和sql计算分页 php的更多相关文章

  1. sql语句分页多种方式

    sql语句分页多种方式ROW_NUMBER()OVER sql语句分页多种方式ROW_NUMBER()OVER 2009年12月04日 星期五 14:36 方式一 select top @pageSi ...

  2. SQL server分页的四种方法(算很全面了)

      这篇博客讲的是SQL server的分页方法,用的SQL server 2012版本.下面都用pageIndex表示页数,pageSize表示一页包含的记录.并且下面涉及到具体例子的,设定查询第2 ...

  3. SQL存储过程分页(通用的拼接SQL语句思路实现)

    多表通用的SQL存储过程分页 案例一: USE [Community] GO /****** Object: StoredProcedure [dbo].[Common_PageList] Scrip ...

  4. sql语句分页多种方式ROW_NUMBER()OVER

    sql语句分页多种方式ROW_NUMBER()OVER 摘自: http://www.cnblogs.com/CodingArt/articles/1692468.html 方式一 select to ...

  5. Oracle基础(五)pl/sql进阶(分页过程)

    编写分页过程         通过pl/sql实现分页过程,再该过程中由简单到难一步步深入,目的在于通过该案例熟悉pl/sql的各种存储过程,包,游标.怎样在java中调用等内容的学习. 1.无返回值 ...

  6. oracle count 百万级 分页查询记要总数、总条数优化

    oracle count 百万级 分页查询记录总数.总条数优化 oracle count 百万级 查询记录总数.总条数优化 最近做一个项目时,做分页时,发现分页查询速度很慢,分页我做的是两次查询,一次 ...

  7. SQL Server游标 C# DataTable.Select() 筛选数据 什么是SQL游标? SQL Server数据类型转换方法 LinQ是什么? SQL Server 分页方法汇总

    SQL Server游标   转载自:http://www.cnblogs.com/knowledgesea/p/3699851.html. 什么是游标 结果集,结果集就是select查询之后返回的所 ...

  8. SQL server分页的四种方法

    SQL server分页的四种方法 1.三重循环: 2.利用max(主键); 3.利用row_number关键字: 4.offset/fetch next关键字 方法一:三重循环思路  先取前20页, ...

  9. Windows分页文件设置不当导致SQL Server服务被终止

    Windows分页文件设置不当导致SQL Server服务被终止 文章说明 在正式开始验证和测试之前,先介绍Windows分页文件和SQL Server的动态内存管理.下面测试将分为两种测试场景:场景 ...

  10. SQL server分页的三种方法

    一.Entity Framework的Linq语句的分页写法: var datacount = test.OrderBy(t => t.testID) .Skip(pageSize * (pag ...

随机推荐

  1. SqlServer中常用的一些操作语句

    我们在维护数据库数据的时候,通常会用到各种SQL语句对数据进行操作或者维护,如:查看某个数据库中有哪些用户数据表.每个数据表中总共有多少条数据-- SqlServer官方地址:https://lear ...

  2. C#/.NET/.NET Core优秀项目和框架2025年1月简报

    前言 公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的详细介绍.功能特点.使用方式以及部分功能 ...

  3. [JSOI2008]火星人 题解

    原题链接:\(luogu\)$\ \ $ \(BZOJ\)$\ \ $ \(LOJ\) 题目大意:有一个可以支持插入和修改的字符串,定义函数 \(\operatorname{LCQ(x,y)}\) 表 ...

  4. CUDA异常捕获

    技术背景 在CUDA编程中有可能会遇到一些相对比较隐蔽的报错,但是直接编译运行cu文件是不显现的.那么可以通过添加一个用于检查的宏,来监测CUDA程序运行过程中可能出现的报错. error.cuh 我 ...

  5. PHP 命名空间与spl_autoload_register() 自动加载机制

    转:https://www.cnblogs.com/chihuobao/p/9895202.html include 和 require 是PHP中引入文件的两个基本方法.在小规模开发中直接使用 in ...

  6. 【Abaqus】*Solid Section定义复合材料

    *SOLID SECTION 介绍 *solid section 用来定义单元的材料属性,材料方向等信息: solid (continuum) elements infinite elements a ...

  7. 导出和导入word样式模板

    对于自己配置过之后常用的word样式可以导出作为样式模板, 可以重复使用. 举例说一下哪些是常用的word样式, 例如: (常见的): 中文的内容的样式, 中英文分别设置不同的样式 (比较高级的)多级 ...

  8. python正则表达式笔记1

    最近工作中经常用到正则表达式处理数据,慢慢发现了正则表达式的强大功能,尤其在数据处理工作中,记录下来分享给大家. 一. 正则表达式语法介绍 正则表达式(或 RE)指定了一组与之匹配的字符串:模块内的函 ...

  9. 告别手动敲代码!VSCODE 风格在线可视化开发平台,效率飙升!

    2025 年 2 月 21 日消息,对于广大开发者而言,今天迎来一则重大利好消息!一款操作布局与 VSCODE 极为相似的可视化开发神器 --Joker 智能可视化开发平台正式上线.无论你是深耕前端领 ...

  10. 一款 .NET 开源、功能强大的远程连接管理工具,支持 RDP、VNC、SSH 等多种主流协议!

    前言 今天大姚给大家分享一款基于 .NET 开源(GPL-2.0 license).免费.功能强大的 Windows 远程连接管理工具,支持 RDP.VNC.SSH 等多种主流协议:mRemoteNG ...