| 提供完全可以使用的类,使用时请初始化各函数! <?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 . "<br>"; // 截取 " 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 . "<br>"; $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 .= " <A href=" . $this->FilePath . "?" . $this->QueryString . $first . ">首页</A> "; else $str .= " 首页 "; if($prev >= 0) $str .= " <A href=" . $this->FilePath . "?" . $this->QueryString . $prev . ">前页</A> "; else $str .= " 前页 "; if($next < $this->Total) $str .= " <A href=" . $this->FilePath . "?" . $this->QueryString . $next . ">后页</A> "; else $str .= " 后页 "; if($this->TPages != 0 && $this->CPages < $this->TPages) $str .= " <A href=" . $this->FilePath . "?" . $this->QueryString . $last . ">尾页</A>"; else $str .= " 尾页 ";
$str .= " 页次:" . $this->getCurrenPages() . "/" . $this->getTotalPages() . "页 "; $str .= $this->maxLine . "条/页 " . "共" . $this->Total . "条"; return $str; } } ?>
|