微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php+mysql分页类

<?PHP

/********************************************* 

类名: PageSupport

功能分页显示MysqL数据库中的数据 

***********************************************/ 

class PageSupport{ 

    //属性

    var $sql;                    //所要显示数据的SQL查询语句 

    var $page_size;                //每页显示最多行数 

    

    var $start_index;            //所要显示记录的首行序号

    var $total_records;            //记录总数 

    var $current_records;        //本页读取的记录数 

    var $result;                //读出的结果 

    

    var $total_pages;            //总页数  

    var $current_page;            //当前页数

    var $display_count = 30;     //显示的前几页和后几页数

    var $arr_page_query;        //数组,包含分页显示需要传递的参数 

    var $first;

    var $prev;

    var $next;

    var $last;

    

    //方法

/********************************************* 

构造函数:__construct()

输入参数:            

        $ppage_size:每页显示最多行数    

***********************************************/ 

 function PageSupport($ppage_size)

 { 

    $this->page_size=$ppage_size; 

    $this->start_index=0;

 } 

/********************************************* 

构造函数:__destruct()

输入参数:            

***********************************************/ 

 function __destruct()

 {

    

 }

        

/********************************************* 

get函数:__get()

***********************************************/ 

 function __get($property_name)

 {  

     if(isset($this->$property_name)) 

     { 

            return($this->$property_name); 

     } 

     else 

     { 

            return(NULL); 

     } 

 }

 

/********************************************* 

set函数:__set()

***********************************************/ 

 function __set($property_name,$value) 

 {     

    $this->$property_name = $value; 

 } 

/********************************************* 

函数名:read_data

功能:    根据SQL查询语句从表中读取相应的记录

返回值:属性二维数组result[记录号][字段名]

***********************************************/ 

 function read_data()

 { 

    $psql=$this->sql

    

    //查询数据,数据库链接等信息应在类调用的外部实现

    $result=MysqL_query($psql) or die(MysqL_error()); 

    $this->total_records=MysqL_num_rows($result); 

    

    //利用LIMIT关键字获取本页所要显示的记录

    if($this->total_records>0) 

    {

        $this->start_index = ($this->current_page-1)*$this->page_size;

        $psql=$psql.    " LIMIT ".$this->start_index.",".$this->page_size; 

        

        $result=MysqL_query($psql) or die(MysqL_error()); 

        $this->current_records=MysqL_num_rows($result); 

        

        //将查询结果放在result数组中

        $i=0; 

        while($row=MysqL_fetch_Array($result))

        { 

            $this->result[$i]=$row; 

            $i++; 

        } 

    }

    

    //获取总页数、当前页信息

    $this->total_pages=ceil($this->total_records/$this->page_size);  

    $this->first=1;

    $this->prev=$this->current_page-1;

    $this->next=$this->current_page+1;

    $this->last=$this->total_pages;

 }

 /********************************************* 

函数名:standard_navigate()

功能:    显示首页、下页、上页、未页

***********************************************/ 

 function standard_navigate() 

 {    

    echo "<div align=center>";

    echo "<form action=".$_SERVER['PHP_SELF']." method="get">";

    

    echo "<font color = red size ='4'>第".$this->current_page."页/共".$this->total_pages."页</font>"; 

    echo "    ";

    

    echo "跳到<input type="text" size=Ř" name="current_page" value='".$this->current_page."'/>页";

    echo "<input type="submit" value="提交"/>";

    

    //生成导航链接

    if ($this->current_page > 1) {

      echo "<A href=".$_SERVER['PHP_SELF']."?current_page=".$this->first.">首页</A>|"; 

      echo "<A href=".$_SERVER['PHP_SELF']."?current_page=".$this->prev.">上一页</A>|"; 

    }

    if( $this->current_page < $this->total_pages) {

      echo "<A href=".$_SERVER['PHP_SELF']."?current_page=".$this->next.">下一页</A>|";

      echo "<A href=".$_SERVER['PHP_SELF']."?current_page=".$this->last.">末页</A>"; 

    }

    

    echo "</form>";    

    echo "</div>";

 } 

 

  /********************************************* 

函数名:full_navigate()

功能:    显示首页、下页、上页、未页  

生成导航链接 如1 2 3 ... 10 11

***********************************************/ 

 function full_navigate() 

 {    

    echo "<div align=center>";

    echo "<form action=".$_SERVER['PHP_SELF']." method="get">";

    

    echo "<font color = red size ='4'>第".$this->current_page."页/共".$this->total_pages."页</font>"; 

    echo "    ";

    

    echo "跳到<input type="text" size=Ř" name="current_page" value='".$this->current_page."'/>页";

    echo "<input type="submit" value="提交"/>";

    

    //生成导航链接 如1 2 3 ... 10 11

    $front_start = 1;

    if($this->current_page > $this->display_count){

        $front_start = $this->current_page - $this->display_count;

    }

    for($i=$front_start;$i<$this->current_page;$i++){

        echo "<a href=".$_SERVER['PHP_SELF']."?page=".$i.">[".$i ."]</a> ";    

    }

    echo "[".$this->current_page."]";

    $displayCount = $this->display_count;

    if($this->total_pages > $displayCount&&($this->current_page+$displayCount)<$this->total_pages){

        $displayCount = $this->current_page+$displayCount;

    }else{

        $displayCount = $this->total_pages;

    }

    for($i=$this->current_page+1;$i<=$displayCount;$i++){

        echo "<a href=".$_SERVER['PHP_SELF']."?current_page=".$i.">[".$i ."]</a> ";    

    }

    //生成导航链接

    if ($this->current_page > 1) {

      echo "<A href=".$_SERVER['PHP_SELF']."?current_page=".$this->first.">首页</A>|"; 

      echo "<A href=".$_SERVER['PHP_SELF']."?current_page=".$this->prev.">上一页</A>|"; 

    }

    if( $this->current_page < $this->total_pages) {

      echo "<A href=".$_SERVER['PHP_SELF']."?current_page=".$this->next.">下一页</A>|";

      echo "<A href=".$_SERVER['PHP_SELF']."?current_page=".$this->last.">末页</A>"; 

    }

    

    echo "</form>";    

    echo "</div>";

 } 

?>

写在PHP页面里面的代码

<div class="index">

<?PHP 

    

    include_once("fenye_PHP.PHP");   //引入类

    

    ///////////////////////////////////////////////////////////////////////

    $con = MysqL_connect("localhost","root",""); 

    if (!$con)

      {

      die('Could not connect: ' . MysqL_error());    

      }

      

    MysqL_select_db("myblog",$con);    //选取数据库

    

    $PAGE_SIZE=10;            //设置每页显示的数目

    

    ///////////////////////////////////////////////////////////////////////

    $pageSupport = new PageSupport($PAGE_SIZE); //实例化PageSupport对象

    

    $current_page=$_GET["current_page"];//分页当前页数

    

    if (isset($current_page)) {

        

        $pageSupport->__set("current_page",$current_page);

        

    } else {

        

        $pageSupport->__set("current_page",1);

        

    }

    

    $pageSupport->__set("sql","select * from article ");     

    $pageSupport->read_data();//读数据

    

    if ($pageSupport->current_records > 0) //如果数据不为空,则组装数据

    {

        for ($i=0; $i<$pageSupport->current_records; $i++)

        {

            $title = $pageSupport->result[$i]["title"];

            $content = $pageSupport->result[$i]["content"];

            

            $part=substr($content,400);

            //循环输出每条数据

            echo '<div class="index_side">        

                <div class="index_title">'.$title.'</div>

                <div class="index_content">'.$part.'</div>

                <div class="index_button">

                   <a href="#">update</a>   <a href="#">delet</a>

                </div>

            </div>';

        }

    }

    $pageSupport->standard_navigate(); //调用类里面的这个函数显示分页HTML

    //关闭数据库

    MysqL_close($con);

 ?>

</div>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐