mysql 分页类_php新手之mysql分页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;

}

}

?>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值