PHP+MySQL中實現分頁

來源:互聯網
上載者:User

標籤:

你只需要在需要添加頁的頁面加入這幾行代碼

<?php
include ‘form.class.php‘;

$p=new Page(100, ‘Demo01.php‘);//這裡需要傳遞兩個參數,參數一是分頁中每頁預設要顯示的條數,參數二是本頁面的連結地址

echo $p->ShowDiv();

?>

實現分類的頁Page.class.php

<?php
class Page{
private $pageNum;//當前頁
private $pageCount;//總頁數
private $pageSize;//每頁行數
private $rowCount;//總行數
private $url;//轉跳的原地址

//__get()方法用來擷取私人屬性
public function __get($property_name)
{
if(isset($this->$property_name))
{
return($this->$property_name);
}
else
{
return(NULL);
}
}
//__set()方法用來設定私人屬性
public function __set($property_name, $value)
{
$this->$property_name = $value;
}


//給以上變數賦值
function __construct($rowCount,$url){
//在地址欄取pageNum和pageSize變數的值
if(isset($_GET["page"])){
$this->pageNum=$_GET["page"];
$this->pageSize=$_GET["pageSize"];
}else{
$this->pageNum=1;
$this->pageSize=3;
}
//通過傳進來的參數給rowCount和url賦值
$this->rowCount=$rowCount;
$this->url=$url;
//通過計算求得頁面總數
$this->pageCount=intval($rowCount/$this->pageSize)+($rowCount%$this->pageSize?1:0);
}

/**
* 畫介面
*/
function ShowDiv(){

//判斷是否是第一頁或最後一頁,確定轉跳地址
$nextPage=$this->pageNum+($this->pageNum<$this->pageCount? 1:0);
$lastPage=$this->pageNum-($this->pageNum>1? 1:0);

//首頁和上一頁
$div="<div style=‘text-align: center;‘>";
//設定每頁顯示行數,放到表單裡提交時可以顯示到地址欄(a標籤設定不用表單)
$div.="<form action=‘{$this->url}‘ method=‘get‘>";
$div.="共【{$this->rowCount}】條資料 <a href=‘{$this->url}?page=1&pageSize={$this->pageSize}‘>首頁</a> ";
$div.="<a href=‘{$this->url}?page={$lastPage}&pageSize={$this->pageSize}‘>上一頁</a> ";

//12345的頁數,用當前頁面數判斷顯示哪些數字
if($this->pageCount<5){
for($i=1;$i<=$this->pageCount;$i++){
if($this->pageNum==$i){
$div.="<a>{$i}</a> ";
}else{
//a標籤的數字和page相對應
$div.="<a href=‘{$this->url}?page={$i}&pageSize={$this->pageSize}‘>{$i}</a> ";
}
}
}else if($this->pageNum<=3){
for($i=1;$i<=5;$i++){
if($this->pageNum==$i){
$div.="<a>{$i}</a> ";
}else{
$div.="<a href=‘{$this->url}?page={$i}&pageSize={$this->pageSize}‘>{$i}</a> ";
}
}
}else if($this->pageNum>3&&$this->pageNum<$this->pageCount-3){
for($i=$this->pageNum-2;$i<=$this->pageNum+2;$i++){
if($this->pageNum==$i){
$div.="<a>{$i}</a> ";
}else{
$div.="<a href=‘{$this->url}?page={$i}&pageSize={$this->pageSize}‘>{$i}</a> ";
}
}
}else{
for($i=$this->pageCount-4;$i<=$this->pageCount;$i++){
if($this->pageNum==$i){
$div.="<a>{$i}</a> ";
}else{
$div.="<a href=‘{$this->url}?page={$i}&pageSize={$this->pageSize}‘>{$i}</a> ";
}
}
}

//下一頁、末頁和顯示
$div.="<a href=‘{$this->url}?page={$nextPage}&pageSize={$this->pageSize}‘>下一頁</a> ";
$div.="<a href=‘{$this->url}?page={$this->pageCount}&pageSize={$this->pageSize}‘>末頁</a> ";
$div.="當前第【{$this->pageNum}】頁,共【{$this->pageCount}】頁 ";

$div.="<input type=‘hidden‘ value=‘1‘ name=‘page‘ /> ";//開頭用page是否存在判斷的
$div.="每頁<input style=‘width: 30px‘ type=‘text‘ value=‘{$this->pageSize}‘ name=‘pageSize‘/>行 ";
$div.="<input type=‘submit‘ value=‘設定‘ name=‘btnSet‘ /></form>";
$div.="</div>";
return $div;
}
}

?>

PHP+MySQL中實現分頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.