zoukankan      html  css  js  c++  java
  • 回归后端分页本质,理清后端分页思路

        采用后端分页的方式不管用了什么插件或者框架,回归本质,底层还是sql。这里提供mysql 和 SQL Server 分页sql 实现。

    分页需要的知道的几个参数:

        当前页

        一页多少行

        总记录数

        总页数

    上面的4个参数可以先自己定义默认值,但是总记录数和总行数需要查询数据库之后计算

    Php+mysql:

       $pageNow = 1;//当前页
        $pageSize = 5;//一页多少行
        $lineCount = 0;//总记录书
        $pageCount = 0;//总页数
        
        //从get请求中获取前端需要请求的当前页
        if(isset($_GET['pageNow'])){
            $pageNow = $_GET['pageNow'];
        }
        
        //统计总记录数
        $sql = "select count(*) as count from table_test";
        //执行查询
        $res=$conn->query($sql);
        while($row=$res->fetch_assoc()){
            $lineCount = $row['count'];
        }
        //向上取整,统计总页数
        $pageCount = ceil($lineCount/$pageSize);
        
        //动态生成sql
        $sql = "select * from table_test limit ".($pageNow-1) * $pageSize.", $pageSize";
      //下面的部分省略,执行查询即可

     

    Php + SQL Server2008R2:

      如果不知道php怎么连接sql server 可以参考这篇博客

       $lineCount = 0;//总行数
    
        $pageSize = 15;//一页多少行
    
        $pageNow = 1;//当前页
    
        $pageCount = 0;//一共多少页页数 = 总行数 / 一行多少页并且向上取整
    
        if(isset($_GET['pageNow'])){
    
            $pageNow = $_GET['pageNow'];
    
        }
    
        //查询总行数
    
        $sql = "select count(*) as num from writeCard";
    
        $result = odbc_do($conn, $sql);
    
        if(odbc_fetch_row($result)){
    
            $lineCount = odbc_result($result, "num");
    
        }
    
        //算出总页数
    
        $pageCount = ceil($lineCount / $pageSize);
    
        $stratIndex = ($pageNow-1)*$pageSize + 1;
    
        $endIndex = $stratIndex + $pageSize ;
    
        $sql = "select * from (select *,ROW_NUMBER() over(order by convert(bigint,CardOutnerID) asc) as num from writeCard) as temp where temp.num >= ". stratIndex." and temp.num <". endIndex;
    
      //下面的部分省略,执行查询即可
  • 相关阅读:
    view上面 长view时候要设置其frame的,
    controller.allowsEditing = NO;神医,
    怎样计算,遗留,
    编码,一点阅读(转:阮一峰的网络日志),
    原来 ascll是对英文系统的编码,
    CoreGraphics 画图,(转燕羽天空)
    Core Graphics,
    计算数据类型占有 字节的长度,
    浅谈Promise(一)
    原生js实现表格内容增删改
  • 原文地址:https://www.cnblogs.com/makalochen/p/11956601.html
Copyright © 2011-2022 走看看