PHP MySQL数据分页

Posted web全栈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP MySQL数据分页相关的知识,希望对你有一定的参考价值。

SQL SELECT语句查询总是可能导致数千条记录。但是在一个页面上显示所有结果并不是一个好主意。因此,我们可以根据要求将此结果划分为多个页面。分页意味着在多个页面中显示您的查询结果,而不是仅将它们全部放在一个长页面中。mysql通过使用LIMIT子句帮助生成分页,该子句将采用两个参数。第一个参数为OFFSET,第二个参数应从数据库返回多少条记录。下面是一个使用LIMIT子句获取记录以生成分页的简单示例。

<html>
<head>
        <title>php分页</title>
</head>
<body>
<?php
         $dbhost = ‘localhost‘;  // 数据库主机
         $dbuser = ‘root‘;            // 用户名
         $dbpass = ‘123456‘;    // 密码
         $rec_limit = 10;            // 每页10条数据
         $conn = mysqli_connect($dbhost, $dbuser, $dbpass);
         if(! $conn ) {
            die(‘连接失败: ‘ . mysqli_error());
         }
         mysqli_select_db($conn,‘test‘);   // 要操作的数据
         /* 获取所有的记录数 */
         $sql = "SELECT COUNT(id) FROM test ";
         $retval = mysqli_query( $conn, $sql );
         if(! $retval ) {
            die(‘没有获取到数据: ‘ . mysqli_error($conn));
         }
         $row = mysqli_fetch_array($retval, MYSQLI_NUM );
         $rec_count = $row[0];
         if( isset($_GET[‘page‘] ) ) {
            $page = $_GET[‘page‘] + 1;
            $offset = $rec_limit * $page ;
         }else {
            $page = 0;
            $offset = 0;
         }
         $left_rec = $rec_count - ($page * $rec_limit);
         $sql = "SELECT name ".
            "FROM test ".
            "LIMIT $offset, $rec_limit";
         $retval = mysqli_query( $conn, $sql );
         if(! $retval ) {
            die(‘不能获取到数据: ‘ . mysqli_error($conn));
         }
         while($row = mysqli_fetch_array($retval, MYSQLI_ASSOC)) {
            echo "TEST name :{$row[‘name‘]}  <br> ";
         }
         if( $page > 0 ) {
            $last = $page - 2;
            echo "<a href = "".$_SERVER[‘PHP_SELF‘]."?page=$last">上一页</a> |";
            echo "<a href = "".$_SERVER[‘PHP_SELF‘]."?page=$page">下一页</a>";
         }else if( $page == 0 ) {
            echo "<a href = "".$_SERVER[‘PHP_SELF‘]."?page=$page">下一页</a>";
         }else if( $left_rec < $rec_limit ) {
            $last = $page - 2;
            echo "<a href =  "".$_SERVER[‘PHP_SELF‘]."?page=$last">最后一页</a>";
         }
         mysqli_close($conn);
      ?>
</body>
</html>

 

修改每页显示的数据或者插入多条数据查看效果,PHP MySQL插入数据

以上是关于PHP MySQL数据分页的主要内容,如果未能解决你的问题,请参考以下文章

php+mysql查询上万条数据很慢,其中把分页去掉就快了

使用 PHP 和 MySQL 的引导分页

php怎么分页显示mysql数据库中的记录?php分页时提示数据未定义改怎么解决?

php分页

(进阶篇)jQuery+Ajax+PHP+Mysql实现分页显示数据

php分页代码及总结