PHP分頁設計

來源:互聯網
上載者:User
一、分頁類設計Page.php

class Page {

public $pageSize=6;//每頁顯示記錄數

public $res; //記錄集

public $rowCount;//記錄總數數

public $pageNow=1; //當前頁

public $pageCount=1; //總頁數

public $navigate; //導航

public $url; //地址

public $firstRow; //每頁顯示的第一條記錄

public $rollPage; //分欄每頁顯示頁數

public $startNum; //【1】

public $endNum;


public function setNav(){

$navigate="";

//本導航的起始頁

if($this->startNum>1){

$jump=$this->startNum-$this->rollPage;

//$nav=$this->url."/pageNow/$jump";

$navigate.= "url}?pageNow=$jump'><< ";

}

for($start=$this->startNum;$start<=$this->endNum;$start++)

{

$navigate.="url}?pageNow=$start'>[{$start}]";

}

if($this->endNum<$this->pageCount)

{

$jump=$this->startNum+$this->rollPage;

$navigate.= "url}?pageNow=$jump'>>> ";

}

$navigate.="第".$this->pageNow."頁/共".$this->pageCount."頁";

$this->navigate=$navigate;

}


public function setPage($url,$pageNow,$rowCount,$pageSize=6,$rollPage=4){


$this->url=$url;

$this->pageNow=$pageNow;

$this->rowCount=$rowCount;

$this->pageSize=$pageSize;

$this->rollPage=$rollPage;

$this->pageCount=ceil($this->rowCount/($this->pageSize+0.0));

$this->firstRow=($this->pageNow-1)*$this->pageSize;


$this->startNum=floor(($this->pageNow-1)/$this->rollPage)*$this->rollPage+1;

$this->endNum=$this->startNum+$this->rollPage-1;

if($this->endNum>$this->pageCount)

{

$this->endNum=$this->pageCount;

}

if($rowCount==0){

$this->pageNow=1;

$this->rollPage=1;

$this->firstRow=1;

$this->pageCount=1;

}

$this->setNav(); //字串儲存導航

}

}


?>



二、SqlHelper.class.php定義分頁顯示方法

public function excute_dql_page($sql1,$sql2,&$page){

//資料表資訊分頁

//sql1資料,sql2求行數

$result=mysql_query($sql1,$this->conn)or die(mysql_errno());

$arr=array();

while($row=mysql_fetch_assoc($result)){

$arr[]=$row;

}

mysql_free_result($result);

$result=mysql_query($sql2,$this->conn) or die(mysql_errno());

if($row=mysql_fetch_row($result)){

$page->pageCount=ceil($row[0]/$page->pageSize);

$page->rowCount=$row[0];

}

mysql_free_result($result);

//實現導航條

$page->res_array=$arr; //數組儲存記錄集

$fenyePage->setNav();

return $arr;

}

三、使用分頁(userList.php)

header("content-type:text/html;charset=utf-8");

require_once 'SQLHelper.class.php';

require_once 'UserService.class.php';



echo"使用者資訊表
";

echo"


//建立fenyePage並設定屬性值



$page=new Page();

$page->url="userList.php";

$page->pageNow=1;

if(isset($_GET['pageNow'])){

$page->pageNow=$_GET['pageNow'];

}

//建立Service負責產生一個記錄集(分頁後的)

$page->setPage($url,$pageNow);

$userService=new UserService();

$userService->getUserListByPage($fenyePage);


foreach ($page->res_array as $row){

$id=$row['id'];

echo"

//print_r($row['id']);

}

echo"

"; ";
id name 刪除 修改
{$row['id']} {$row['name']} 刪除 修改
";

echo $fenyePage->navigate;

?>

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.