封装分页

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
    评论
MyBatis是一种轻量级的Java持久层框架,用于和数据库进行交互。在处理大量数据时,我们通常需要进行分页查询来提高性能和用户体验。MyBatis提供了一个简单而强大的分页插件来封装分页功能。 在MyBatis中,我们可以使用分页插件来实现分页查询。首先,我们需要在配置文件中引入分页插件,并通过插件配置来启用分页功能。可以使用以下配置来启用MyBatis分页插件: ``` <plugins> <plugin interceptor="com.github.pagehelper.PageInterceptor"> <property name="helperDialect" value="mysql"/> </plugin> </plugins> ``` 在Mapper接口对应的映射文件中,我们可以使用`RowBounds`对象来指定分页的偏移量和限制条数。例如,我们可以使用以下方式进行分页查询: ``` List<User> getUsersByPage(SqlSession session, int offset, int limit) { RowBounds rowBounds = new RowBounds(offset, limit); return session.selectList("com.example.mapper.UserMapper.getUsers", null, rowBounds); } ``` 在上述代码中,`offset`表示分页查询的偏移量,`limit`表示每页显示的数据条数。`RowBounds`对象实例化后作为参数传入`selectList`方法,并在映射文件中的SQL语句中使用`#{offset}`和`#{limit}`来引用。 通过使用MyBatis的分页插件,我们可以轻松地实现数据的分页查询操作,从而提升系统性能和用户体验。同时,MyBatis的分页插件还提供了丰富的配置选项,可以满足不同场景下的分页需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值