php新手之mysql分页PageQuery类(转)

php新手之my sql分页PageQuery类:


php
include("dbClass.inc");
class PageQuery extends dbClass {
var $Offset; // 记录偏移量
var $Total; // 记录总数

var $maxLine; // 记录每页显示记录数
var $result; // 读出的结果

var $TPages; // 总页数
var $CPages; // 当前页数

var $PageQuery; // 分页显示要传递的参数
var $Query; // query 语句
var $QueryPart; // " FROM " 以后的 query 部分
var $QueryString; // ? 以后部分

var $FilePath;

// 每页显示行数
function PageQuery($pageLine=10) {
$this->dbClass();
$this->maxLine = $pageLine;
}

// 记录总数
function getTotal(){
return $this->Total;
}

// 显示总页数
function getTotalPages() {
return $this->TPages;
}

//显示当前所在页数
function getCurrenPages() {
return $this->CPages;
}

function myQuery($sql, $flag=1){
GLOBAL $offset;
$this->Query = $sql;

// 获取文件名
//$this->FilePath = $GLOBALS["REQUEST_URI"];
$this->FilePath = $GLOBALS["SCRIPT_NAME"];

// 获取查询条件
$this->QueryString = $GLOBALS["QUERY_STRING"];
//echo $this->QueryString . "
";

// 截取 " from " 以后的 query 语句
$this->QueryPart = trim(strstr($sql, " from "));

// 计算偏移量
if (!isset($offset)) $this->Offset = 0;
else $this->Offset = (int)$offset;




// 计算总的记录条数
$SQL = "SELECT Count(*) AS total " . $this->QueryPart;
$this->result = $this->executeQuery($SQL);
$this->Total = mysql_result($this->result,0);

// 设置当前页数和总页数
$this->TPages = (double)Ceil((double)$this->Total/$this->maxLine);
$this->CPages = (double)Floor((double)$this->Offset/$this->maxLine+1);


// 根据条件判断,取出所需记录
if ($this->Total > 0) {
//flag等于1表示要分页,否则不分页
if($flag==1)
$SQL = $this->Query . " LIMIT " . $this->Offset . " , " . $this->maxLine;
else
$SQL = $this->Query;
echo $SQL . "
";
$this->$result = $this->executeQuery($SQL);
}
return $this->result;
}

//**********显示翻页提示栏*************
// 显示首页、下页、上页、尾页
function PageLegend() {
$str = "";
$i = 0;
$first = 0;
$next = 0;
$prev = 0;
$last = 0;

$next = $this->Offset + $this->maxLine;
$prev = $this->Offset - $this->maxLine;
$last = ($this->TPages - 1) * $this->maxLine;

GLOBAL $offset;
if (!isset($offset)) $this->QueryString .= "&offset=";
else{
$this->QueryString = substr($this->QueryString,0,strrpos($this->QueryString,'&')) . "&offset=";
}

if($this->Offset >= $this->maxLine)
$str .= " QueryString . $first . ">首页 ";
else $str .= " 首页 ";

if($prev >= 0)
$str .= " QueryString . $prev . ">前页 ";
else $str .= " 前页 ";

if($next < $this->Total)
$str .= " QueryString . $next . ">后页 ";
else $str .= " 后页 ";

if($this->TPages != 0 && $this->CPages < $this->TPages)
$str .= " QueryString . $last . ">尾页";
else $str .= " 尾页 ";

$str .= " 页次:" . $this->getCurrenPages() . "/" . $this->getTotalPages() . "页 ";
$str .= $this->maxLine . "条/页 " . "共" . $this->Total . "条";
return $str;
}
}
?>


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-122797/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10294527/viewspace-122797/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值