本文目錄一覽:
- 1、php 分頁類怎麼用啊?
- 2、ThinkPHP使用心得分享-分頁類Page的用法
- 3、求PHP各種分頁方法,各位大仙有的別藏了~~
- 4、PHP+mysql分頁的問題,我用了php萬能分頁的代碼,
- 5、php分頁功能怎麼實現
php 分頁類怎麼用啊?
?php
class Page {
private $total_rows;//數據庫總條數
private $per_page_rows;//每頁顯示條數
private $limit;
private $uri;
private $total_pages;//總頁數
private $config=array(“header”=”記錄條數”,”prev”=”上一頁”,”next”=”下一頁”,”first”=”首 頁”,”last”=”尾 頁”);
private $list_length=8;
public function __construct($total_rows,$per_page_rows=10,$url_args){
$this-total_rows=$total_rows;
$this-per_page_rows=$per_page_rows;
$this-uri=$this-get_uri($url_args);
$this-page = !empty($_GET[‘page’]) ? $_GET[‘page’] : 1;
$this-total_pages=ceil($this-total_rows/$this-per_page_rows);
$this-limit=$this-set_limit();
}
private function set_limit() {
return “limit “.($this-page-1)*$this-per_page_rows.”,{$this-per_page_rows}”;
}
private function get_uri($url_args) {
$url=$_SERVER[“REQUEST_URI”].(strpos($_SERVER[“REQUEST_URI”],”?”) ? “” : “?”).$url_args;
$parse=parse_url($url);
if (isset($parse[‘query’])) {
parse_str($parse[‘query’],$params);//把url字符串解析為數組
unset($params[‘page’]);//刪除數組下標為page的值
$url=$parse[‘path’].’?’.http_build_query($params);//再次構建url
}
return $url;
}
public function __get($args) {
if ($args==”limit”) {
return $this-limit;
}else{
return null;
}
}
private function start_page(){
if ($this-total_rows==0) {
return 0;
}else{
return (($this-page-1)*$this-per_page_rows)+1;
}
}
private function end_page(){
return min($this-page*$this-per_page_rows,$this-total_rows);
}
private function go_first() {
$html=””;
if ($this-page==1) {
$html.=”nbsp;{$this-config[‘first’]}nbsp;”;
}else{
$html.=”nbsp;a href='{$this-uri}page=1′{$this-config[‘first’]}/anbsp;”;
}
return $html;
}
private function go_prev() {
$html=””;
if ($this-page==1) {
$html.=”nbsp;{$this-config[‘prev’]}nbsp;”;
}else{
$html.=”nbsp;a href='{$this-uri}page={$this-page}-1′{$this-config[‘prev’]}/anbsp;”;
}
return $html;
}
private function go_next() {
$html=””;
if ($this-page==$this-total_pages) {
$html.=”nbsp;{$this-config[‘next’]}nbsp;”;
}else{
$html.=”nbsp;a href='{$this-uri}page={$this-page}+1′{$this-config[‘next’]}/anbsp;”;
}
return $html;
}
private function go_last() {
$html=””;
if ($this-page==$this-total_pages) {
$html.=”nbsp;{$this-config[‘last’]}nbsp;”;
}else{
$html.=”nbsp;a href='{$this-uri}page={$this-total_pages}'{$this-config[‘last’]}/anbsp;”;
}
return $html;
}
private function go_page() {
return ‘nbsp;input type=”text” onkeydown=”javascript:if(event.keyCode==13){var page=(this.value’.$this-total_pages.’)?’.$this-total_pages.’:this.value;location=\”.$this-uri.’page=\’+page+\’\’}” value=”‘.$this-page.'” style=”width:25px;” /input type=”button” onclick=”javascript:var page=(this.previousSibling.value’.$this-total_pages.’)?’.$this-total_pages.’:this.previousSibling.value;location=\”.$this-uri.’page=\’+page+\’\'” value=”GO” /nbsp;’;
}
private function page_list() {
$link_page=””;
$i_num=floor($this-list_length/2);
for ($i = $i_num; $i = 1; $i–) {
$page=$this-page-$i;
if ($page1) {
continue;
}else{
$link_page.=”nbsp;a href='{$this-uri}page={$page}'{$page}/anbsp;”;
}
}
$link_page.=”nbsp;{$this-page}nbsp;”;
for ($i = 1; $i $i_num; $i++) {
$page=$this-page+$i;
if ($page=$this-total_pages) {
$link_page.=”nbsp;a href='{$this-uri}page={$page}'{$page}/anbsp;”;
}else{
break;
}
}
return $link_page;
}
public function out_page($display=array(0,1,2,3,4,5,6,7,8)) {
$display_html=”;
$html[0]=”nbsp;共有b{$this-total_rows}/b{$this-config[‘header’]}nbsp;”;
$html[1]=”nbsp;每頁顯示b”.($this-end_page()-$this-start_page()+1).”/b條,本頁顯示從b{$this-start_page()}/b–b{$this-end_page()}/b{$this-config[‘header’]}nbsp;”;
$html[2]=”nbsp;b{$this-page}/b/b{$this-total_pages}/b頁nbsp;”;
$html[3]=$this-go_first();
$html[4]=$this-go_prev();
$html[5]=$this-page_list();
$html[6]=$this-go_next();
$html[7]=$this-go_last();
$html[8]=$this-go_page();
foreach ($display as $index){
$display_html.=$html[$index];
}
return $display_html;
}
}
?
ThinkPHP使用心得分享-分頁類Page的用法
ThinkPHP中的Page類在ThinkPHP/Extend/Library/ORG/Util/Page.class.php中,所以使用前要引入Page類:
複製代碼
代碼如下:
import(‘ORG.Util.Page’);
//Page類的引入
$db
=
M(‘abc’);//實例化數據表abc
$where
=
array(
‘id’=’2’;
);//條件語句$where,例表中字段id的值為2
$count
=
$db-where($where)-count();//獲取符合條件的數據總數count
$page
=
new
Page($count,
10);//實例化page類,傳入數據總數和每頁顯示10條內容
$limit
=
$page-firstRow
.
‘,’
.
$page-listRows;//每頁的數據數和內容$limit
$result
=$db-where($where))-limit($limit)-select();//分頁查詢結果
$this-result
=
$result;//賦值
$this-show
=
$page-show();//獲取分頁的底部信息
以上代碼是分頁類實現的基本語句,當然喜歡使用原生sql語句的朋友也可以配合原生sql語句實現查詢分頁:
複製代碼
代碼如下:
import(‘ORG.Util.Page’);
//Page類的引入
$db
=
M(‘abc’);//實例化數據表abc
$where
=
array(
‘id’=’2’;
);//條件語句$where,例表中字段id的值為2
$count
=
$db-where($where)-count();//獲取符合條件的數據總數count
$page
=
new
Page($count,
10);//實例化page類,傳入數據總數和每頁顯示10條內容
$Modle
=
new
Model();//實例化新數據模型
$sql
=
‘select
id,name
from
abc
where
‘.$where.’
limit
‘.$page-firstRow.’,’.$page-listRows;//sql語句
$result
=
$Modle-query($sql);//執行sql語句
$this-result
=
$result
$this-show=$page-show();
當然,分布查詢獲取的內容也可以先對查詢完的數據進行處理再賦值,比如
複製代碼
代碼如下:
…
$result
=$db-where($where))-limit($limit)-select();//分頁查詢結果
$res
=
abc($result);//abc方法(自定義方法或php函數)對結果$result進行數據排序或重組處理等
$this-result
=
$res;//賦值
求PHP各種分頁方法,各位大仙有的別藏了~~
PHP分頁方法:
第一步創建一個類 subPages.php?php
class SubPages{
private $each_disNums;//每頁顯示的條目數
private $nums;//總條目數
private $current_page;//當前被選中的頁
private $sub_pages;//每次顯示的頁數
private $pageNums;//總頁數
private $page_array = array();//用來構造分頁的數組
private $subPage_link;//每個分頁的鏈接
private $subPage_type;//顯示分頁的類型
//__construct是SubPages的構造函數,用來在創建類的時候自動運行. //@$each_disNums 每頁顯示的條目數 // @nums 總條目數 // @current_num 當前被選中的頁 //@sub_pages 每次顯示的頁數 // @subPage_link 每個分頁的鏈接 //@subPage_type 顯示分頁的類型 //當@subPage_type=1的時候為普通分頁模式 example: 共4523條記錄,每頁顯示10條,當前第1/453頁 [首頁] [上頁] [下頁] [尾頁] //當@subPage_type=2的時候為經典分頁樣式 example: 當前第1/453頁 [首頁] [上頁] 1 2 3 4 5 6 7 8 9 10 [下頁] [尾頁]
function __construct($each_disNums,$nums,$current_page,$sub_pages,$subPage_link,$subPage_type){
//intval通過使用特定的進制轉換(默認是十進制),返回變量 var 的 integer 數值
$this-each_disNums=intval($each_disNums);
$this-nums=intval($nums);
if(!$current_page){
$this-current_page=1;
}else{
$this-current_page=intval($current_page);
}
$this-sub_pages=intval($sub_pages);
$this-pageNums=ceil($nums/$each_disNums);
$this-subPage_link=$subPage_link;
$this-show_SubPages($subPage_type);
//echo $this-pageNums.”–“.$this-sub_pages;
}
//__destruct析構函數,當類不在使用的時候調用,該函數用來釋放資源
function __destruct(){
unset($each_disNums);
unset($nums);
unset($current_page);
unset($sub_pages);
unset($pageNums);
unset($page_array);
unset($subPage_link);
unset($subPage_type);
}
//show_SubPages函數用在構造函數裡面。而且用來判斷顯示什麼樣子的分頁
function show_SubPages($subPage_type){
if($subPage_type == 1){
$this-subPageCss1();
}elseif ($subPage_type == 2){
$this-subPageCss2();
}
}
//用來給建立分頁的數組初始化的函數。
function initArray(){
for($i=0;$i$this-sub_pages;$i++){
$this-page_array[$i]=$i;
}
return $this-page_array;
}
//construct_num_Page該函數使用來構造顯示的條目
// 即使:[1][2][3][4][5][6][7][8][9][10]
function construct_num_Page(){
if($this-pageNums $this-sub_pages){
$current_array=array();
for($i=0;$i$this-pageNums;$i++){
$current_array[$i]=$i+1;
}
}else{
$current_array=$this-initArray();
if($this-current_page = 3){
for($i=0;$icount($current_array);$i++){
$current_array[$i]=$i+1;
}
}elseif ($this-current_page = $this-pageNums $this-current_page $this-pageNums – $this-sub_pages +1 ){
for($i=0;$icount($current_array);$i++){
$current_array[$i]=($this-pageNums)-($this-sub_pages)+1+$i;
}
}else{
for($i=0;$icount($current_array);$i++){
$current_array[$i]=$this-current_page-2+$i;
}
}
}
return $current_array;
}
//構造普通模式的分頁
//共4523條記錄,每頁顯示10條,當前第1/453頁 [首頁] [上頁] [下頁] [尾頁]
function subPageCss1(){
$subPageCss1Str=””;
$subPageCss1Str.=”共”.$this-nums.”條記錄,”;
$subPageCss1Str.=”每頁顯示”.$this-each_disNums.”條,”;
$subPageCss1Str.=”當前第”.$this-current_page.”/”.$this-pageNums.”頁 “;
if($this-current_page 1){
$firstPageUrl=$this-subPage_link.”1″;
$prewPageUrl=$this-subPage_link.($this-current_page-1);
$subPageCss1Str.=”[a href=’$firstPageUrl’首頁/a] “;
$subPageCss1Str.=”[a href=’$prewPageUrl’上一頁/a] “;
}else {
$subPageCss1Str.=”[首頁] “;
$subPageCss1Str.=”[上一頁] “;
}
if($this-current_page $this-pageNums){
$lastPageUrl=$this-subPage_link.$this-pageNums;
$nextPageUrl=$this-subPage_link.($this-current_page+1);
$subPageCss1Str.=” [a href=’$nextPageUrl’下一頁/a] “;
$subPageCss1Str.=”[a href=’$lastPageUrl’尾頁/a] “;
}else {
$subPageCss1Str.=”[下一頁] “;
$subPageCss1Str.=”[尾頁] “;
}
echo $subPageCss1Str;
}
//構造經典模式的分頁
//當前第1/453頁 [首頁] [上頁] 1 2 3 4 5 6 7 8 9 10 [下頁] [尾頁]
function subPageCss2(){
$subPageCss2Str=””;
$subPageCss2Str.=”當前第”.$this-current_page.”/”.$this-pageNums.”頁 “;
if($this-current_page 1){
$firstPageUrl=$this-subPage_link.”1″;
$prewPageUrl=$this-subPage_link.($this-current_page-1);
$subPageCss2Str.=”[a href=’$firstPageUrl’首頁/a] “;
$subPageCss2Str.=”[a href=’$prewPageUrl’上一頁/a] “;
}else {
$subPageCss2Str.=”[首頁] “;
$subPageCss2Str.=”[上一頁] “;
}
$a=$this-construct_num_Page();
for($i=0;$icount($a);$i++){
$s=$a[$i];
if($s == $this-current_page ){
$subPageCss2Str.=”[span style=’color:red;font-weight:bold;'”.$s.”/span]”;
}else{
$url=$this-subPage_link.$s;
$subPageCss2Str.=”[a href=’$url'”.$s.”/a]”;
}
}
if($this-current_page $this-pageNums){
$lastPageUrl=$this-subPage_link.$this-pageNums;
$nextPageUrl=$this-subPage_link.($this-current_page+1);
$subPageCss2Str.=” [a href=’$nextPageUrl’下一頁/a] “;
$subPageCss2Str.=”[a href=’$lastPageUrl’尾頁/a] “;
}else {
$subPageCss2Str.=”[下一頁] “;
$subPageCss2Str.=”[尾頁] “;
}
echo $subPageCss2Str;
}
}
?要做分頁的頁面?php//每頁顯示的條數
$page_size=2;
//得到當前是第幾頁
$pageCurrent=$_GET[“p”];
$offet =($pageCurrent-1)*$page_size;
//建立數據庫連接
$conn = mysql_connect(“地址”,”用戶名”,”密碼”) or die(“”.mysql_error());
//設置字符集
mysql_query(“set names gbk”);
//設置數據庫
mysql_select_db(“數據庫名”,$conn) or die(“”.mysql_error());
if($conn) { include (“query.html”);
//查詢會員信息//注:這裡的sql查詢了兩遍.第一遍是確定查詢出來的總數據條數
$query_sql = “SELECT * FROM user_info_t order by id desc”;//第二遍是根據需要即$page_size來確定每次查出的條數
$query_sql_sec= “SELECT * FROM user_info_t order by id desc limit $offet,$page_size”;
//執行查詢語句 返回一個結果集
$query_res = mysql_query($query_sql,$conn);
$query_res_sec = mysql_query($query_sql_sec,$conn);
//查詢列數
//$query_cols = mysql_num_fields($query_res);
//查詢行數
$query_num =mysql_num_rows($query_res);
//返回根據從結果集取得的行生成的數組,如果沒有更多行
echo “table border=’0′ cellpadding=’1′ cellspacing=’2′ width=’100%’ bgcolor=’#FFFFFF'”;
while($query_row = mysql_fetch_array($query_res_sec)) {
echo “tr”;
for ($i=0;$i$query_cols;$i++) {
echo “td bordercolor=’#A2BEE1′ bgcolor=’#A2BEE1′ width=’8%'”.$query_row[$i].”/td\n”;
}
echo “td bordercolor=’#A2BEE1′ bgcolor=’#A2BEE1′ width=’8%'”;
//echo “input type=’button’ class=’button’ id=’modify_record’ name=’modify_record’ value=’修改’ /”;
echo”button onClick=\”submit(location.href=’../modify/modify.php?rec_id=$query_row[0]’);\”class=\”button\”;修改/button”;
//echo “ahref=’../delete/delete.php?rec_id=$query_row[0]’onClick=\”if(confirm(‘確實要刪除此條記錄嗎?’)) return true;else returnfalse;\”img src=\”../image/delete.gif\” align=\”absmiddle\”/刪除/a”;
echo “buttononClick=\”if(confirm(‘確實要刪除此條記錄嗎?’)) return submit(location.href=’../delete/delete.php?rec_id=$query_row[0]’);else return false;\”class=\”button\”;刪除/button”;
echo “/td”;
echo “/tr”;
}
//echo “/form”;
echo “/table”;
require_once(“../common/subPages.php”);//總條目數為數據庫中查詢出的數據條數
$nums=$query_num;
//每次顯示的頁數
$sub_pages=10; //if(!$pageCurrent) $pageCurrent=1;
//調用類SubPages 傳的參數為:每頁顯示條數/當前第幾頁/每次顯示的頁數/分頁模式
$subPage=new SubPages($page_size,$nums,$pageCurrent,$sub_pages,”query.php?p=”,1);
}else{
die(‘數據庫連接異常: ‘.mysql_error());
}
//斷開數據庫連接
if ($conn)
{
mysql_close($conn);
}
?
PHP+mysql分頁的問題,我用了php萬能分頁的代碼,
剛才下載了類包看了看, 1、$page 變量名已經被使用,且聲明為全局變量所以你不用再次定義$page,也就是說,使用幫助有錯誤,且limit 條件不應該是$page ,而應該是 $start = ($page-1)*$pageSize;//(當前頁碼-1)* 每頁的顯示條目 $strsql = ” lPHP+mysql分頁的問題,我用了php萬能分頁的代碼,
php分頁功能怎麼實現
php本身是沒有分頁概念的,分頁是URL傳參,然後通過mysql查詢語句到數據庫獲取數據,然後實現的分頁,url上的參數,通過PHP的$_GET都是可以獲取到的。
現在市面上的PHP框架基本都有PHP分頁類,參照文檔直接調用就好了,如果想看實現過程,可以去下載一個TP框架,然後打開裡面的分頁類查看裡面的源代碼。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/247715.html