封装分页

1、pageclass.php
<?php 
class page{ 
private $dbadd; //数据库地址 
private $dbuser; //数据库用户名 
private $dbpwd; //数据库密码 
private $dbname; //数据库名  
private $tablename; //数据表名 
private $num; //每页显示的行数 
private $total; //表中数据总数 
private $totalpage; //总页数 
private $page; //当前页数 
private $limit; //查询数 
private $arrs; //查询后返回的数据 
private $col; //总列数 
private $nostart; //当前页开始的记录数 
private $noend; //当前页结束的记录数 
private $head; //首页 
private $end;  //尾页 
private $last;  //上一页 
private $nexts;  //下一页 

function __construct($dbadd, $dbuser, $dbpwd, $dbname, $tablename, $num){ 
      $this->dbadd=$dbadd; 
      $this->dbuser=$dbuser; 
      $this->dbpwd=$dbpwd; 
      $this->dbname=$dbname; 
      $this->tablename=$tablename; 
      $this->num=$num; 
      $this->total=$this->gettotal();   //得到总条数 
     $this->totalpage=ceil($this->total/$this->num); //获取总页数 
      $this->page=$this->getpage(); //得到当前页数 
     $this->limit=$this->setlimit(); //得到查询的数据 
     $this->arrs=$this->getarrs(); //得到查询的结果        
      $this->col=$this->getcol(); //获取总列数 
        $this->nostart=($this->page-1)*$num+1; 
         $this->noend=$this->page==$this->totalpage ? $this->total : $this->page*$num; 
        $this->head=$this->page==1 ? "首页" : "<a href='?page=1'>首页</a>"; 
        $this->end=$this->page==$this->totalpage ? "尾页" : "<a href='?page={$this->totalpage}'>尾页</a>"; 
        $this->last=$this->page==1 ? "上一页" : "<a href='?page=".($this->page-1)."'>上一页</a>"; 
         $this->nexts=$this->page==$this->totalpage ? "下一页" : "<a href='?page=".($this->page+1)."'>下一页</a>"; 
    } 

    private function getcol(){  //表中数据总数
        $linkss=mysql_connect($this->dbadd, $this->dbuser, $this->dbpwd); 
         mysql_select_db($this->dbname, $linkss); 
        $result=mysql_query("select * from {$this->tablename}", $linkss); 
        $col=mysql_num_fields($result); 
         mysql_close($linkss); 
       return $col; 
    } 


     private function getarrs(){ //根据条件再次查询并返回结果 
        $sql="select * from {$this->tablename} limit {$this->limit}, {$this->num}";//限制每页出几个内容
         $links=mysql_connect($this->dbadd, $this->dbuser, $this->dbpwd); 
        mysql_select_db($this->dbname, $links);   
         $result=mysql_query($sql, $links);
   echo "<table align='center' border='1'>";
        echo "<caption><h2>学生信息查询结果</h2></caption>";
       echo "<th>编号</th><th>用户</th><th>标题</th><th>内容</th><th>发表时间</th>"; //单纯的从数据库中读出内容以一个表格的形式输出
       while($arr=mysql_fetch_assoc($result)){ 
           
  echo "<tr>";
 foreach($arr as $data)
 {echo "<td>".$data."</td>";}
 echo "</tr>";

       }
echo "</table>";
         return $data; 
         mysql_close($links); 
    } 

    private function setlimit(){ 
        return ($this->page-1)*$this->num; 
    } 

    private function getpage(){ 
         $page=isset($_GET["page"]) ? $_GET["page"] : 1; 
         $page=$page>$this->totalpage ? $this->totalpage : $page; 
         $page=$page<1 ? 1 : $page; 
        return $page; 
    } 

    private function gettotal(){    //得到表中所有记录的总数 
        $link=mysql_connect($this->dbadd, $this->dbuser, $this->dbpwd); 
        mysql_select_db($this->dbname, $link); 
        $result=mysql_query("select * from {$this->tablename}", $link); 
        $total=mysql_num_rows($result); 
        mysql_close($link); 
       return $total; 
    } 

    function __get($args){ 
        switch($args){ 
             case "arrs":    //根据条件查询出的结果,是二维数组 
                 return $this->arrs; 
                break; 
            case "totalpage":   //总页数 
                return $this->totalpage; 
                 break; 
            case "col": //总列数 
                return $this->col; 
                break; 
             case "page":    //当前页 
                return $this->page; 
                break; 
             case "nostart": //当前页显示的记录的起始条数 
                return $this->nostart; 
                break; 
            case "noend": //当前页显示的记录的结束条数 
                 return $this->noend; 
                break; 
            case "head":    //首页按钮 
                 return $this->head; 
                break; 
             case "end": //尾页按钮 
                return $this->end; 
                break; 
            case "last":  //上一页按钮 
               return $this->last; 
                 break; 
            case "nexts": //下一页按钮 
                return $this->nexts; 
                 break; 
         } 
     } 

 ?>

2、a.php
<?php
/*

private $head; //首页 
private $end;  //尾页 
private $last;  //上一页 
private $nexts;  //下一页
*/
include ("pageclass1.php");
$p = new page("localhost","root","123","lyb","content",5);//content=>表明,5=>每页显示几条记录
echo "<center>";
echo $p->head;
echo $p->last;
echo $p->nexts;
echo "当前页为第".$p->page."页";
echo $p->end;
echo "</center>";
?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值