分頁顯示是一種非常常見的瀏覽和顯示大量資料的方法,屬於web程式設計中最常處理的事件之一。
資料分頁的原理其實是非常簡單的,它是通過sql的limit語句來實現的。
比如下面這條語句用來查詢第0條開始的5條資料
select * from user limit 0,5
所以只要拼接好limit語句,分頁實現起來就很容易了。
比如我們使用get方式傳送當前頁數:那麼當前頁$page =$_get['page'];
每頁顯示的數量我們初定義為5條 $pagesize = 5;
那麼limit語句就為 limit ($pgae-1)*$pagesize,$pagesize
$pagesize,$dbname,$table,$where,$fields $offset $pagesize 為每頁顯示的數量 $dbname為要鏈結的資料庫 $table 為要查詢的表明 $where為查詢的條件 $fields為要查詢的字段 $offset為偏移量,就是要顯示的頁數,多餘的會以省略號代替。
<?php
header('content-type:text/html;charset=utf-8');
/*** @var int $pagesize 每頁數量
* @var string table 表名
* @var string $where 查詢條件
* @var int $maxpages 最大頁數
* @var int $total 總資料條數
* @var object $pdo
* @var int offset 偏移量 頁碼省略號兩邊的頁數
*/class pagecatch(pdoexception $e) }
/*** 返回按分頁查詢的資料
*/ public function index()
$pages = $this->getpages($pagesize,$total,$this->maxpages,$page,$this->offset);
$tmp['info'] = $list;
$tmp['pages'] = $pages;
return $tmp;
}catch(pdoexception $e)
} /**
* 生成頁數鏈結
*/ private function getpages($pagesize,$total,$maxpages,$page,$offset)
/***/ private function next($page,$maxpages)else
return $str;
} /**
*/ private function prev($page)else
return $str;
} /**
* 處理頁碼offset
*/ private function moffset($page,$tmpstr,$offset,$maxpages)
if($start<0)
$o1 = ($start>0)?'...':false;
//長度
$len = $offset*2;
if(($start+$len)
$arr = array_slice($arr,$start,$len);
if($o1)
if($o2)
$tmpstr = implode('',$arr);
return $tmpstr;
} /**
* @return 返回 總條數
*/ private function gettotal()
}?>
下面我們實際呼叫下這個分頁類:
<?php
include('./a.php');
//呼叫分頁類
$page = new page('3','erhaodian','cmstop_category','','catid,name,pinyin','2');
$re = $page->index();
$str= "編號
名字拼音
"; foreach($re['info'] as $v)
eof;
}$str.= '';
echo $str;
echo $re['pages'];
?>
輸出結果為:
簡單的分頁
程式設計,很重要的乙個技能就是抽象能力,就是現實中的瑣事,我怎麼用 來表示。當前頁碼前後顯示3頁,然後需要顯示第一頁以及最後一頁 未顯示的頁碼用省略號 表示 舉例如下 不考慮超連結,我們可以將需求抽象出來。可以將這個需求簡單成乙個字元輸出問題 要求 輸入兩個引數,當前頁數page以及總頁數total...
儲過程實現簡單的資料分頁
建立儲存過程的sql語句 use db wms db wms 為資料庫名稱,可替換 go object storedprocedure dbo procpaging script date 01 24 2014 16 05 00 set ansi nulls on goset quoted iden...
Thinkphp 實現簡單資料分頁
thinkphp框架中自帶分頁類page.class.php,在thinkphp library think目錄下面 在控制器中先導入這個分頁類 use think page 匯入分頁類後台 n m tablename condition id uid count n where condition...