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/