php 分页类

<?
class page
{
        /*
        分页类 zonwen Wong  2004-1-5 PM
        */

        var $total_RecordNum = 0;
        var $curr_PageNum = 1;
        var $limit_Num = 21;
        var $total_Pages = 1;
        var $startRecord = 1;
        var $endRecord = 20;
        var $thisPageRecords = 0;
        var $queryString = "";

        /*
        function page($totalRecordNum, $limit, $pagenum = 1)
        {
                $this->setLimit($limit);
                $this->setTotalRecordNum($totalRecordNum);
                $this->setCurrPageNum($pagenum);
                $this->computePage();
        }
        */
        function page($totalRecordNum, $limit, $pagenum = 0)
        {
                $this->setLimit($limit);
                $this->setTotalRecordNum($totalRecordNum);
                if($pagenum !=0)
                        $this->setCurrPageNum($pagenum);
                else
                        $this->setCurrPageNum($_REQUEST[pageNum]);
                $this->computePage();
        }

 


        function computePage()
        {
                $this->total_Pages = ceil($this->total_RecordNum / $this->limit_Num);
                if ($this->curr_PageNum > $this->total_Pages)
                        $this->curr_PageNum = $this->total_Pages;
                if ($this->total_Pages == 0)
                {
                        $this->startRecord = 0;
                        $this->endRecord = 0;
                        $this->thisPageRecords = 0;
                        $this->total_Pages = 1;
                        $this->curr_PageNum = 1;
                }
                else
                {
                        $this->startRecord = $this->limit_Num * ($this->curr_PageNum - 1) + 1;
                        if ($this->curr_PageNum < $this->total_Pages)
                        {
                                $this->endRecord = $this->curr_PageNum * $this->limit_Num;
                                $this->thisPageRecords = $this->limit_Num;
                        }
                        else
                        {
                                $this->endRecord = $this->total_RecordNum;
                                $this->thisPageRecords = $this->total_RecordNum - ($this->curr_PageNum-1) * $this->limit_Num;
                        }
                }
        }

 


        function setLimit($Num)
        {
                if ($Num > 0 && (int)$Num == $Num)
                        $this->limit_Num = $Num;
        }

        function setTotalRecordNum($Num)
        {
                if ($Num > 0 && (int)$Num == $Num)
                        $this->total_RecordNum = $Num;
        }

        function setCurrPageNum($Num)
        {
                if ($Num > 0 && (int)$Num == $Num)
                        $this->curr_PageNum = $Num;
        }

        function setQueryString($string)
        {
                $this->queryString = $string;
        }

        function getStartRecord()
        {
                return $this->startRecord;
        }

        function getEndRecord()
        {
                return $this->endRecord;
        }

        function getCurrPageNum()
        {
                return $this->curr_PageNum;
        }

        function getThisPageRecords()
        {
                return $this->thisPageRecords;
        }

        function getTotalPages()
        {
                return $this->total_Pages;
        }
        function getLimit()
        {
                return $this->limit_Num;
        }
        function getTotalRecordNum()
        {
                return $this->total_RecordNum;
        }
        function getQueryString()
        {
                return $this->queryString;
        }

 


        function listPages()
        {
                for($i =1; $i<=$this->getTotalPages(); $i++)
                {
                        if($i == $this->getCurrPageNum())
                                echo "<font color=\"#FF0000\"><strong>".$i."</strong></font> ";
                        else
                                echo "<a href=\"".$_SERVER[PHP_SELF]."?pageNum=".$i."&".$this->getQueryString()."\">$i</a> ";
                }
        }

        function pageText()
        {
                echo "&sup1;&sup2;".$this->getTotalRecordNum()."&Igrave;&otilde;&frac14;&Ccedil;&Acirc;&frac14;&pound;&not;·&Ouml;".$this->getTotalPages()."&Ograve;&sup3;&pound;&not;&Atilde;&iquest;&Ograve;&sup3;&Iuml;&Ocirc;&Ecirc;&frac34;".$this->getLimit()."&Igrave;&otilde;&frac14;&Ccedil;&Acirc;&frac14; &Auml;&iquest;&Ccedil;°&Icirc;&ordf;&micro;&Uacute;".$this->getCurrPageNum()."&Ograve;&sup3;";
        }

        function PreviousNext()
        {
                if($this->getCurrPageNum()>1)
                        echo "<a href=\"".$_SERVER[PHP_SELF]."?pageNum=1&".$this->getQueryString()."\">&Ecirc;×&Ograve;&sup3;</a> ";
                else
                        echo "&Ecirc;×&Ograve;&sup3; ";

                if($this->getCurrPageNum()>1)
                        echo "<a href=\"".$_SERVER[PHP_SELF]."?pageNum=".($this->getCurrPageNum()-1)."&".$this->getQueryString()."\">&Eacute;&Iuml;&Ograve;&raquo;&Ograve;&sup3;</a> ";
                else
                        echo "&Eacute;&Iuml;&Ograve;&raquo;&Ograve;&sup3; ";

                if($this->getCurrPageNum()<$this->getTotalPages())
                        echo "<a href=\"".$_SERVER[PHP_SELF]."?pageNum=".($this->getCurrPageNum()+1)."&".$this->getQueryString()."\">&Iuml;&Acirc;&Ograve;&raquo;&Ograve;&sup3;</a> ";
                else
                        echo "&Iuml;&Acirc;&Ograve;&raquo;&Ograve;&sup3; ";

                if($this->getCurrPageNum()<$this->getTotalPages())
                        echo "<a href=\"".$_SERVER[PHP_SELF]."?pageNum=".$this->getTotalPages()."&".$this->getQueryString()."\">&Icirc;&sup2;&Ograve;&sup3;</a> ";
                else
                        echo "&Icirc;&sup2;&Ograve;&sup3; ";

        }

        function goToPage()
        {
                echo "<form name=\"gotopage\" method=\"post\" action=\"".$_SERVER[PHP_SELF]."?".$this->getQueryString()."\">
  ×&ordf;&micro;&frac12;&micro;&Uacute;
  <input name=\"pageNum\" type=\"text\" id=\"pageNum\" size=\"3\" value=\"".$this->getCurrPageNum()."\">
  &Ograve;&sup3; <a href=\"javascript:gotopage.submit()\">go</a>
</form>";
        }


}

/*
//example
$page = new page(90, 3);
$page->setQueryString("aa=$aa&b=$b&c=$c");
$page->listPages();
echo "<hr>";
$page->PreviousNext();
echo "<hr>";
$page->pageText();
echo "<hr>";
$page->goToPage();
*/

?>

posted on 2004-09-06 14:22  爬行的E.T  阅读(335)  评论(0)    收藏  举报

导航