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

首頁 > 語言 > PHP > 正文

一個分頁顯示類

2024-09-04 11:43:57
字體:
來源:轉載
供稿:網友
  1. <?php  
  2. /*
  3.  * 分頁顯示類  
  4.  * PageItem.php v 1.0.0  
  5.  * 編程:Boban<boban@21php.com>  
  6.  * 討論:http://www.survivalescaperooms.com  
  7.  * 更新:2004-02-02  
  8.  * 說明:  
  9.  * 1. 配合MYSQL數據庫使用  
  10.  * 2. 類沒有提供連接數據庫的功能,需在外部建立數據庫連接。  
  11.  * */ 
  12. /*
  13.  * 使用方法:  
  14.  * $sql = "select * from news limit 0,10";  
  15.  * $hdc = new PageItem($sql);  
  16.  * echo $hdc->myPageItem();  
  17.  * $arrRecords = $hdc->ReadList();  
  18.  * */ 
  19. if (!defined("__PAGEITEM__")) {  
  20.     define("__PAGEITEM__", 1);  
  21. else {  
  22.     exit(3);  
  23. }  
  24. class PageItem {  
  25.     var $iDefaultRecords = 10; // 默認每頁顯示記錄數,如果沒有設置,就使用默認值  
  26.     var $iMaxRecord//每頁記錄數  
  27.     var $iTotal//記錄總數  
  28.     var $sqlRecord// 獲取記錄的SQL查詢  
  29.     var $iPages//總頁數  
  30.     var $CPages//當前頁數  
  31.     /*
  32.   * 構造函數 -- 初始化變量  
  33.   * 參數:SQL查詢語句,將忽略LIMIT語句  
  34.   * */ 
  35.     function PageItem($sql = "")  
  36.     {   
  37.         // register_shutdown_function($this->_PageItem());  
  38.         $this->SetMaxRecord($this->iDefaultRecords);  
  39.         /*
  40.        * 解析SQL語句  
  41.        * */ 
  42.         if ($sql <> "") {  
  43.             list($sql) = spliti("LIMIT"$sql); // 去除LIMIT語句  
  44.             $this->sqlRecord = trim($sql);  
  45.             list(, $sql) = spliti("FROM"$sql);  
  46.             $sql = trim($sql);  
  47.    if(preg_match ("//bGROUP/b /bBY/b/i"$sql))  
  48.    {  
  49.     //echo "HAVE GROUP BY";  
  50.     if(preg_match ("//bHAVING/b/i"$sql)) list(,$field) = spliti("HAVING",$sql);  
  51.     list($field) = spliti(' ',trim($field));  
  52.     //echo $field;  
  53.     $this->iTotal = $this->CountRecord("SELECT $field,COUNT(DISTINCT $field) AS cnt FROM " . $sql,2);  
  54.    }  
  55.    else $this->iTotal = $this->CountRecord("SELECT COUNT(*) AS cnt FROM " . $sql,1);  
  56.         }   
  57.         $this->iPages = ceil($this->iTotal / $this->iMaxRecord);  
  58.         $this->CPages = $_REQUEST['page'];  
  59.         if ($this->CPages <= 0) $this->CPages = 1;  
  60.         if ($this->CPages > $this->iPages) $this->CPages = $this->iPages;  
  61.         //echo "SELECT COUNT(*) AS cnt FROM " . $sql;  
  62.   //echo $this->iTotal;  
  63.     }   
  64.     /*
  65.      * 析構函數 -- 暫時不可用  
  66.      * */ 
  67.     function _PageItem()  
  68.     {   
  69.         // $this->linkid = NULL;  
  70.     }  
  71.     function SetMaxRecord($cnt)  
  72.     {  
  73.         $this->iMaxRecord = $cnt;  
  74.     }  
  75.     /*
  76.      * 統計匹配的記錄總數  
  77.      * */ 
  78.     function CountRecord($sql,$type)  
  79.     {  
  80.   //echo $sql;  
  81.   if($type == 1)  
  82.   {  
  83.    if (($records = mysql_query($sql)) && ($record = mysql_fetch_assoc($records))) {  
  84.     return $record['cnt'];  
  85.    } else return 0;  
  86.   }  
  87.   elseif($type == 2)  
  88.   {  
  89.    if($records = mysql_query($sql))  
  90.     return mysql_affected_rows();  
  91.   }  
  92.     }  
  93.  /* 
  94.   * 讀取記錄  
  95.   * */ 
  96.  function ReadList()  
  97.  {  
  98.   $ret = array();  
  99.   $this->sqlRecord.=" LIMIT ".($this->CPages-1)*$this->iMaxRecord.",".$this->iMaxRecord;  
  100.   $records = mysql_query($this->sqlRecord);  
  101.   if(!$recordsreturn;  
  102.   while($record = mysql_fetch_array($records))  
  103.   {  
  104.    $ret[] = $record;  
  105.   }  
  106.   return $ret;  
  107.  }  
  108.     function LinktoPage($page$msg)  
  109.     {  
  110.         $link = $this->PageUrl($page);  
  111.         return "<A href=/"$link/">$msg</A>/n";  
  112.     }   
  113.     function PageUrl($page)  
  114.     {  
  115.         $phpself = "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'];  
  116.         $querystring = $_SERVER['QUERY_STRING'];  
  117.         $querystring = preg_replace("/page=[0-9]*&?/i"""$querystring);  
  118.         $link = $phpself . "?page=$page&" . $querystring;  
  119.         return $link;  
  120.     }  
  121.     /* 
  122.   * 顯示當前頁及總頁數     
  123.   * */ 
  124.     function PageNav()  
  125.     {  
  126.         echo "第" . $this->CPages . "頁/共" . $this->iPages . "頁";  
  127.     }  
  128.     /* 
  129.    * 顯示翻頁按鈕,包括首頁、下頁、上頁、未頁  
  130.    * */ 
  131.     function PageButton()  
  132.     {  
  133.         if ($this->CPages > 1) {  
  134.             echo $this->LinktoPage(1, "首頁");  
  135.             echo " | ";  
  136.             echo $this->LinktoPage($this->CPages-1, "上一頁");  
  137.         } else {  
  138.             echo "首頁 | 上一頁";  
  139.         }  
  140.         if ($this->CPages < $this->iPages) {  
  141.             echo " | ";  
  142.             echo $this->LinktoPage($this->CPages + 1, "下一頁");  
  143.             echo " | ";  
  144.             echo $this->LinktoPage($this->iPages, "首頁");  
  145.         } else {  
  146.             echo " | 下一頁 | 尾頁";  
  147.         }   
  148.     }  
  149.     /* 
  150.    * 顯示跳轉頁選擇框  
  151.    * */ 
  152.     function SelectItem()  
  153.     {  
  154.         echo "跳到第<SELECT name='topage' size='1' onchange='window.location=this.value'>/n";  
  155.         for($i = 1;$i <= $this->iPages;$i++) {  
  156.             if ($this->CPages == $i)  
  157.                 $extra = "selected";  
  158.             else 
  159.                 $extra = "";  
  160.             echo "<OPTION VALUE='" . $this->PageUrl($i) . "' $extra>$i</OPTION>";  
  161.         }   
  162.         echo "</SELECT>/n";  
  163.     }  
  164.     /*
  165.      * 一次性顯示所有按鈕組件  
  166.      * */ 
  167.     function myPageItem()  
  168.     {  
  169.         $this->PageButton();  
  170.         $this->SelectItem();  
  171.         $this->PageNav();  
  172.     }   
  173. // 類結束  
  174. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 芦山县| 穆棱市| 南岸区| 颍上县| 庆阳市| 青州市| 长子县| 垣曲县| 泸州市| 柳林县| 双桥区| 乌苏市| 视频| 望江县| 班玛县| 高尔夫| 体育| 武安市| 原平市| 宁陵县| 丹凤县| 博客| 手游| 上思县| 通许县| 辉南县| 富蕴县| 蒙城县| 盐边县| 蓝田县| 新巴尔虎左旗| 镇赉县| 黄浦区| 吴堡县| 温宿县| 香格里拉县| 绥德县| 鹿邑县| 太仆寺旗| 商南县| 兰坪|