国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

Show_page 一個(gè)通用的數(shù)據(jù)庫分頁類

2024-05-04 23:05:15
字體:
供稿:網(wǎng)友

詳細(xì)介紹:
   記得以前總覺得數(shù)據(jù)庫分頁麻煩,而網(wǎng)上的一些分頁類又總感覺太繁瑣,于是這個(gè)類就誕生了。:d
當(dāng)初寫這個(gè)類的時(shí)候就是想把分頁簡單化。您在使用這個(gè)類的時(shí)候只要把記錄數(shù),頁數(shù)大小和要傳遞的變量傳過來,剩下的一切都會(huì)自動(dòng)搞定。有什么問題請到論壇提出。

 

<?php
/**
 * 一個(gè)用于mysql數(shù)據(jù)庫的分頁類
 *
 * @author      avenger <[email protected]>
 * @version     1.0
 * @lastupdate  2003-04-08 11:11:33
 *
 *
 * 使用實(shí)例:
 * $p = new show_page;  //建立新對(duì)像
 * $p->file="ttt.php";  //設(shè)置文件名,默認(rèn)為當(dāng)前頁
 * $p->pvar="pagecount"; //設(shè)置頁面?zhèn)鬟f的參數(shù),默認(rèn)為p
 * $p->setvar(array("a" => '1', "b" => '2')); //設(shè)置要傳遞的參數(shù),要注意的是此函數(shù)必須要在 set 前使用,否則變量傳不過去
 * $p->set(20,2000,1);  //設(shè)置相關(guān)參數(shù),共三個(gè),分別為'頁面大小'、'總記錄數(shù)'、'當(dāng)前頁(如果為空則自動(dòng)讀取get變量)'
 * $p->output(0);   //輸出,為0時(shí)直接輸出,否則返回一個(gè)字符串
 * echo $p->limit();  //輸出limit子句。在sql語句中用法為 "select * from table limit {$p->limit()}";
 *
 */


class show_page {

    /**
     * 頁面輸出結(jié)果
     *
     * @var string
     */
 var $output;

    /**
     * 使用該類的文件,默認(rèn)為 php_self
     *
     * @var string
     */
 var $file;

    /**
     * 頁數(shù)傳遞變量,默認(rèn)為 'p'
     *
     * @var string
     */
 var $pvar = "p";

    /**
     * 頁面大小
     *
     * @var integer
     */
 var $psize;

    /**
     * 當(dāng)前頁面
     *
     * @var ingeger
     */
 var $curr;

    /**
     * 要傳遞的變量數(shù)組
     *
     * @var array
     */
 var $varstr;

    /**
     * 總頁數(shù)
     *
     * @var integer
     */
    var $tpage;

    /**
     * 分頁設(shè)置
     *
     * @access public
     * @param int $pagesize 頁面大小
     * @param int $total    總記錄數(shù)
     * @param int $current  當(dāng)前頁數(shù),默認(rèn)會(huì)自動(dòng)讀取
     * @return void
     */
    function set($pagesize=20,$total,$current=false) {
  global $http_server_vars,$http_get_vars;

  $this->tpage = ceil($total/$pagesize);
  if (!$current) {$current = $http_get_vars[$this->pvar];}
  if ($current>$this->tpage) {$current = $this->tpage;}
  if ($current<1) {$current = 1;}

  $this->curr  = $current;
  $this->psize = $pagesize;

  if (!$this->file) {$this->file = $http_server_vars['php_self'];}

  if ($this->tpage > 1) {
           
   if ($current>10) {
    $this->output.='<a href='.$this->file.'?'.$this->pvar.'='.($current-10).($this->varstr).' title="前十頁">&lt;&lt;&lt;</a>&nbsp;';
   }
            if ($current>1) {
    $this->output.='<a href='.$this->file.'?'.$this->pvar.'='.($current-1).($this->varstr).' title="前一頁">&lt;&lt;</a>&nbsp;';
   }

            $start = floor($current/10)*10;
            $end = $start+9;

            if ($start<1)   {$start=1;}
            if ($end>$this->tpage) {$end=$this->tpage;}

            for ($i=$start; $i<=$end; $i++) {
                if ($current==$i) {
                    $this->output.='<font color="red">'.$i.'</font>&nbsp;';    //輸出當(dāng)前頁數(shù)
                } else {
                    $this->output.='<a href="'.$this->file.'?'.$this->pvar.'='.$i.$this->varstr.'">['.$i.']</a>&nbsp;';    //輸出頁數(shù)
                }
            }

            if ($current<$this->tpage) {
    $this->output.='<a href='.$this->file.'?'.$this->pvar.'='.($current+1).($this->varstr).' title="下一頁">&gt;&gt;</a>&nbsp;';
   }
            if ($this->tpage>10 && ($this->tpage-$current)>=10 ) {
    $this->output.='<a href='.$this->file.'?'.$this->pvar.'='.($current+10).($this->varstr).' title="下十頁">&gt;&gt;&gt;</a>';
   }
  }
 }

    /**
     * 要傳遞的變量設(shè)置
     *
     * @access public
     * @param array $data   要傳遞的變量,用數(shù)組來表示,參見上面的例子
     * @return void
     */
 function setvar($data) {
  foreach ($data as $k=>$v) {
   $this->varstr.='&amp;'.$k.'='.urlencode($v);
  }
 }

    /**
     * 分頁結(jié)果輸出
     *
     * @access public
     * @param bool $return 為真時(shí)返回一個(gè)字符串,否則直接輸出,默認(rèn)直接輸出
     * @return string
     */
 function output($return = false) {
  if ($return) {
   return $this->output;
  } else {
   echo $this->output;
  }
 }

    /**
     * 生成limit語句
     *
     * @access public
     * @return string
     */
    function limit() {
  return (($this->curr-1)*$this->psize).','.$this->psize;
 }

} //end class
?>

 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 山阴县| 根河市| 资源县| 青海省| 莎车县| 阿鲁科尔沁旗| 德钦县| 合山市| 安顺市| 广东省| 牟定县| 上蔡县| 沭阳县| 视频| 衢州市| 楚雄市| 察隅县| 自贡市| 牡丹江市| 渭南市| 富川| 安平县| 白河县| 合川市| 青岛市| 安平县| 黎城县| 普兰县| 巩留县| 息烽县| 金阳县| 库尔勒市| 苍南县| 房产| 海原县| 邳州市| 香港| 蛟河市| 宜州市| 舞阳县| 河西区|