欢迎光临站壳网!我们为您提供最优质的建站资源!

当前位置: 站壳网>建站教程>网站优化教程> 据说很简单的一个PHP分页类,在这里转载给大家
分享本文到:

据说很简单的一个PHP分页类,在这里转载给大家

发布时间:05/06 来源:www.zhankr.net 浏览: 关键词:
一直想弄一个织梦首页分页代码,取代过去织梦老鸟雪毅开发的织梦首页分页插件,可惜找到了很多的代码,就是不能够很好地整合到织梦里面去,以我现在对织梦整合PHP分页代码的猜想来看,需要至少引入织梦的数据库,也就是分页需要查看总的数据条数,就这一点就不能够解决掉,也不想花钱,现在解决不了的问题,不是问题,现在先转载一些PHP分页代码,留着作纪念吧:
<?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>&nbsp;&nbsp;&nbsp;<a href="#">delet</a>
                </div>
            </div>';
        }
    }
    $pageSupport->standard_navigate(); //调用类里面的这个函数,显示出分页HTML
    //关闭数据库
    mysql_close($con);
?>
</div>

当前文章网址:http://www.zhankr.com/jiaocheng/youhua/201605/1618.html 转载请注明出处!

共有335人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论
顶部