• php数据分页显示基础


    一:分页原理:

        所谓分页显示,也就是将数据库中的结果集认为的分成一段一段的来显示,需要两个初始的参数:

    每页多少条记录 ($PageSize)?

    当前是第几页($CurrentPageID)?

    还有其他的一些参数

    比如:上一页($NextPageId)、总页数($numPages)等,都可以根据前边的得到。

    以MYsql为例:如果要从表内截取某段内容,sql语句可以为:select * from table limit offset ,rows.

    前十条记录:select * from table limit 0,10

    前11至20条记录:select * from table limit 10,10

    第21至30条记录:select * from table limit 20,10

         这些sql语句其实就是$PageSize=10的时候取表内每一页数据的sql语句,我们可以总结出这样一个模板:

               select * from table limit ($CurrentPageID-1)*$PageSize,$PageSize

    剩下的就是构造合适的php语句从数据库内获取数据并显示了。

                例:1:链接数据库

      $conn =mysql_connet('localhost','root','1234abcd') or die(‘链接数据库错误’.mysql_error());

                     2:选择数据库

      mysql_query('set names utf8');

                      4:发送sql语句得到结果进行处理

                       4.1分页【分页要发出两个sql语句,一个获得$rowCount,一个是通过sql的limit获得分页结果。所以我们会获得两个结果集。

    分页(获取四个值,两个sql语句)

         $pageSize=3;//每页显示多少条记录

         $rowCount=0;//共有多少条记录

         $pageNow=1;//希望显示第几页

         $pageCount=0;//一共有多少页【分页共有这个四个指标,缺一不可。由于$rowCount可以从服务器获得,所以可以给予初始值为0;

          $pageNow希望显示第几页,这里最好是设置为0;$pageSize是每页显示多少条记录,这里根据网站需求提前制定。

      $pageCount=ceil($rowCount/$pageSize),既然$rowCount可以初始值为0,那么$pageCount当然也就可以设置为0.四个指标,两个0,一个1,另一个为网站需求。】

      //4.15根据分页链接来修改$pageNow的值 

            if(!empty($_GET['pageNow'])){

       $pageNow=$_GET['pageNow'];[根据分页链接来修改$pageNow的值。'];}

    $sql='select count(id) from emp';

    $res1=mysql_query($sql);

         //4.11取出行数

         if($row=mysql_fetch_row($res1)){

          $rowCount=$row[0];

    }//[取得$rwoCount,然后就知道$pageCount这两个指标了。]

      //4.13计算共有多少页

        

     $sql="select * from emp limit $pageStart,$pageSize";//[根据$sql语句的limit 后面的两个值(起始值,每页条数),来实现分页。以及求得这两个值。]

            $res2=mysql_query($sql,$conn) or die('无法获取结果集'.mysql_error());

            echo '<table border=1>';[        echo "<table border='1px' cellspacing='0px' bordercolor='red' width='600px'>";]

    "<tr><th>id</th><th>name</th><th>grade</th><th>email</th><th>salary</th><th><a href='#'>删除用户</a></th><th><a href='#'>修改用户</a></th></tr>";        while($row=mysql_fetch_assoc($res2)){

                    echo "<tr><td>{$row['id']}</td><td>{$row['name']}</td><td>{$row['grade']}</td><td>{$row['email']}</td><td>{$row['salary']}</td><td><a href='#'>删除用户</a></td><td><a href='#'>修改用户</a></td></tr>";        }

            echo '</table>';

           //4.14打印出页码的超链接

           for($i=1;$i<=$pageCount;$i++){

                    echo "<a href='?pageNow=$i'>$i</a> ";//[打印出页码的超链接]

            }

            //5.释放资源,关闭连接

            mysql_free_result($res2);

            mysql_close($conn);

    】。

  • 相关阅读:
    Linux rabbitmq的安装和安装amqp的php插件
    php 安装xdebug扩展
    php 安装pdo_mysql 扩展
    php 安装redis扩展
    给定a、b两个文件,各存放50亿个url,每个url各占用64字节,内存限制是4G,如何找出a、b文件共同的url?
    php 实现多线程
    PHP-Fcgi下PHP的执行时间设置方法
    nginx php 安装
    PHP-fpm启动时 出现 PHP Warning: PHP Startup: Invalid library (maybe not a PHP library) 'fileinfo.so' in Unknown on line 0
    CentOS 6.7 编译PHP7 make时出现错误:undefined reference to `libiconv_close’
  • 原文地址:https://www.cnblogs.com/dubin382460/p/5899776.html
Copyright © 2020-2023  润新知