1、分页查询

  1. select * from tableName limit [start,] count;
  • start:表示起始的记录位置,默认从0开始计算(,可以省略,起始位置为0)
  • count:表示获取数据的条数

    2、起始位置计算

    start = ( page - 1) * count;
    

    3、总页数计算

    allPage = ceil(allRew / pageSize);
    

    所有记录数 / 页面显示条数后通过 ceil 进行向上取整

    4、数学计算函数

  • ceil 向上进一取证

    ceil(float $value):float
    
  • floor 舍去取整

    floor(float $value):float
    
  • round 四舍五入取证

    round(round(float $val, int $precision = 0, int $mode = PHP_ROUND_HALF_UP): float
    

    eg:

    <?php
    var_dump(round(3.4));
    var_dump(round(3.5));
    var_dump(round(3.6));
    var_dump(round(3.6, 0));
    var_dump(round(5.045, 2));
    var_dump(round(5.055, 2));
    var_dump(round(345, -2));
    var_dump(round(345, -3));
    var_dump(round(678, -2));
    var_dump(round(678, -3));
    ?>
    

    分页查询例子:

    ```sql <?php // 连接数据库; $url = “mysql:host=mysql;dbname=database_lessonkpi_28604_25_63”;//数据库ip和库名 $user = “lessonkpi_28604_25_63”;//数据库用户 $pwd = “2460a45ee98b8df178061fdb8d2e15da”;//数据库密码 $pdo = new PDO($url,$user,$pwd);

// 相关变量 $page = 1;//当前页码 $pageSize = 10;//当前每页显示记录数 $start = 0;//获取分页数据时的起始位置 $allNum = 0;//表中所有的记录数 $allPage = 0;//表中所有的页数 $allPage1 = 1;

//通过查询参数获取当前页码 if(isset($_GET[‘p’])){ $page=$_GET[‘p’]; }

//通过页码云计算起始查询位置计算粗所有的页数 $start = ($page-1)$pageSize; $st = $pdo->query(“select from student limit {$start}, {$pageSize}”); $res = $st->fetchAll(PDO::FETCH_ASSOC);

//查询总人数 $st1 = $pdo->query(“select name from student;”); $res1 = $st1->fetchAll(PDO::FETCH_ASSOC); // 获取男生总人数 $st2 = $pdo->query(“select from student where sex=’男’;”); $res2 = $st2->fetchAll(PDO::FETCH_ASSOC); // 获取女生总人数 $st3 = $pdo->query(“select from student where sex=’女’;”); $res3 = $st3->fetchAll(PDO::FETCH_ASSOC); // 获取所有的记录数 $st = $pdo->query(“select count(*) from student;”); $allNum = $st->fetch()[0]; //表中所有的页数 $allPage = ceil($allNum/$pageSize); ?> ```