php+mysql分页类

来源:互联网 发布:疯狂java博客 编辑:程序博客网 时间:2024/05/01 03:28

拿去改改就能很好用的分页类:

封装的类:

<?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,0,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>



16 0
原创粉丝点击