php中分页处理采用什么方法,php中自定义分页处理类

/**

* @(#)pages.php

* PHP version 5.2.3

*

*

* Copyright 2007 SoftRoad. All Rights Reserved.

*

*====================================================================

* 変更履歴

*

* 新規作成                            2007 年5月17日   蒋彪

*/

//require ("../common/dbutil.php");

//require ("../common/config.php");

class PageBean {

/*

* 総ページ数

*/

var $totalPageNumber = 0;

/*

* 当面のページ

*/

var $currentPageNumber = 1;

/*

* 最大レコードの件数

*/

var $pageSize;

/*

* 検索結果

*/

var $result;

/*

* 検索sql

*/

var $sql;

/*

* データベースの処理対象

*/

var $dbutil;

/*

* 総コードの件数

*/

var $totalItem = 0;

/*

* 構造関数

*/

function __construct($sql, $currentPageNumber, $pageSize) {

$this->dbutil = new DBUtil();

$this->sql = $sql;

$this->currentPageNumber = $currentPageNumber;

$this->pageSize = $pageSize;

}

/*

* 総ページ数を設定する

*/

function setTotalPageNumber() {

$this->totalPageNumber = ceil($this->getTotalItem() / $this->pageSize);

}

/*

* 総コードの件数を設定する

*/

function setTotalItem() {

$this->dbutil->connectDb(dbtype, connectType, dbconnect, dbusr, dbpwd);

$result = $this->dbutil->executeQuery($this->sql);

$rowNum = $this->dbutil->rowsNumber($result);

$this->totalItem = $rowNum;

$this->dbutil->closeDb();

}

/*

* 総コードの件数を取得する

*/

function getTotalItem() {

return $this->totalItem;

}

/*

* 総ページ数を取得する

*/

function getTotalPageNumber() {

return $this->totalPageNumber;

}

/*

* 当面のページを設定する

*/

function setCurrentPageNumber($currentPageNumber) {

$this->currentPageNumber = $currentPageNumber;

}

/*

* 当面のページをを取得する

*/

function getCurrentPageNumber() {

return $this->currentPageNumber;

}

/*

* ページ内表示リスト件数を設定する

*/

function setPageSize($pageSize) {

$this->pageSize = $pageSize;

}

/*

* ページ内表示リスト件数

*/

function getPageSize() {

return $this->pageSize;

}

/*

* 最後のページチェック

*/

function isHasNextPage() {

$temp = $this->getCurrentPageNumber() + 1;

if ($temp > $this->getTotalPageNumber()) {

return false;

} else {

return true;

}

}

/*

* 最前のページチェック

*/

function isHasPreviousPage() {

$temp = $this->getCurrentPageNumber() - 1;

if ($temp < 1) {

return false;

} else {

return true;

}

}

/*

* ページ内表示のデータを取得する

*/

function getPageList() {

$this->setTotalItem();

$this->setTotalPageNumber();

$sql = $this->sql . " limit " . $this->getPageSize() . " offset " . ($this->currentPageNumber - 1) * $this->getPageSize();

$this->dbutil->connectDb(dbtype, connectType, dbconnect, dbusr, dbpwd);

$this->result = $this->dbutil->select($sql);

$this->dbutil->closeDb();

return $this->result;

}

/*

* 改頁を取得

*/

function getToolBar() {

$from=($this->getCurrentPageNumber() - 1) * $this->getPageSize() + 1;

$to=$this->getCurrentPageNumber() * $this->getPageSize();

if((int)$to > (int)$this->getTotalItem()){

$to=$this->getTotalItem();

}

if (!$this->isHasNextPage() && !$this->isHasPreviousPage()) {//only one page

$firstNav='最初 ';

$strPreviousNav = '前へ ';

$strPageNum = $this->getCurrentPageNumber();

$strNextNav = ' 次へ';

$strInfo = '最後 (' . $this->getTotalItem() . "件ヒット 1 - ". $this->getPageSize()." 件表示)";

} else if ($this->isHasNextPage() && $this->isHasPreviousPage()) {

$firstNav="最初";

$strPreviousNav = " getCurrentPageNumber() - 1) . ");/">前へ ";

$strPageNum = $this->getCurrentPageNumber();

$strNextNav = " getCurrentPageNumber() + 1) . ");/">次へ";

$strInfo = " getTotalPageNumber(). ");/">最後".'(' . $this->getTotalItem() . "件ヒット " .$from . " - " . $to . "件表示)";

} else if ($this->isHasNextPage() && !$this->isHasPreviousPage()) {//no Previous Page

$firstNav='最初 ';

$strPreviousNav = "前へ ";

$strPageNum = $this->getCurrentPageNumber();

$strNextNav = " getCurrentPageNumber() + 1) . ");/"> 次へ";

$strInfo = " getTotalPageNumber() . ");/">最後".'(' . $this->getTotalItem() . "件ヒット " .$from . " - " . $to . "件表示)";

} else if (!$this->isHasNextPage() && $this->isHasPreviousPage()) {//no Next Page

$firstNav="最初";

$strPreviousNav = " getCurrentPageNumber() - 1) . ");/">前へ ";

$strPageNum = $this->getCurrentPageNumber();

$strNextNav = " 次へ ";

$strInfo = "最後".'(' . $this->getTotalItem() . "件ヒット " .$from . " - " . $to . "件表示)";

}

return $firstNav.$strPreviousNav . $strPageNum . $strNextNav . $strInfo;

}

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值