不是差不多的吗
$pg=$currenntPage;
$start=$pg-4;
$end=$pg+5;
if($start<0){
$end-=$start;
$start=1;
}
for($i=$start;$i<=$end;$i++)
...............
$pg=$currenntPage;
$start=$pg-4;
$end=$pg+5;
if($start<0){
$end-=$start;
$start=1;
}
for($i=$start;$i<=$end;$i++)
...............
class page{
/*
实例:
$sql = "select count(*) from t_article";
$db->query($sql);
$db->next_record();
$recordcount = $db->f(0);//记录总数
$ofun = new page;
$ofun->pagearg = "pagenum";//设置分页参数名,默认为page
$ofun->ar = array("«首页", "‹前页", "后页›", "末页»");//可以设置成图片HTML代码
$trunpage = $ofun->show_page($recordcount, 20);//得到分页信息
$sql = "select * from t_article order by tdate desc ".$ofun->limit;
$db->query($sql);
*/ var $pagecount; //总页数
var $limit = ""; //分页时用到的limit参数
var $pagearg = "page"; //分页参数名称
var $ar = array("«首页", "‹前页", "后页›", "末页»");
/*
* 功能:分页函数
* 参数 $recordcount 为记录总数
* 参数 $pagesize 为每页显示记录数,默认为20
*/
function show_page($recordcount, $pagesize = 20){
$this->pagecount = ceil($recordcount/$pagesize);//总页数
//取得页码,默认为1
if(isset($_GET[$this->pagearg])){
if($_GET[$this->pagearg] <= 0) $page = 1;
else $page = $_GET[$this->pagearg];
}else {
$page = 1;
}
$str = "";
$urlar = $_GET;
unset($urlar[$this->pagearg]);
if($urlar){
foreach($urlar as $key=>$val){
if($str == "") $str = "?$key=$val";
else $str .= "&$key=$val";
}
$str .= "&$this->pagearg=";
}else{
$str = "?$this->pagearg=";
}
if($page > $this->pagecount) $page = $this->pagecount;
$this->limit = "limit ".($page-1)*$pagesize.",".$pagesize;
$trunpage = "";
if($page == 1){
$trunpage .= $this->ar[0]." ".$this->ar[1]." ";
}else {
$trunpage .= '<a href="'.$str.'1">'.$this->ar[0].'</a> <a href="'.$str.($page-1).'">'.$this->ar[1].'/a> ';
}
$trunpage .= " 共[$recordcount]条记录/共[$this->pagecount]页 ";
if($page == $this->pagecount){
$trunpage .= $this->ar[2]." ".$this->ar[3]." ";
}else {
$trunpage .= ' <a href="'.$str.($page+1).'">'.$this->ar[2].'</a> <a href="'.$str.$this->pagecount.'">'.$this->ar[3].'</a>';
}
$select = "<select onchange='location.href=this.options[this.selectedIndex].value'>\n";
for($i = 1; $i <= $this->pagecount; $i++){
$select .= "<option value=\"".$str.$i."\">$i</option>\n";
}
$select .= "</select>";
return $trunpage.$select;
}
}
?>
function pagedeal($pagesql, $pagesize)
{
global $recordcount, $pagecount, $page, $startloc;
$rs = mysql_query($pagesql);
$recordcount = mysql_num_rows($rs); //取得记录总数
//******计算总页数*******/
if ( $recordcount % $pagesize == 0 )
$pagecount = $recordcount / $pagesize;
else
$pagecount = intval($recordcount / $pagesize) + 1;
if ( empty($page)||$page<1 )//$page是当前页
$page = 1;
if ( $page>$pagecount )
$page = $pagecount;
$startloc = ($page - 1) * $pagesize;//确定当前页的起始记录 //-----------------当前页的前部分数字分页----------------------//
if ($page<=5);
$i = 0; if ( $page>5 && $pagecount - $page < 5 && $pagecount>10 )
$i = $pagecount - 10; if ($page>5 && $pagecount - $page >=5)
$i = $page - 5; for (; $i < $page; $i++)
$numpage[$i] = $i + 1;
//--------------当前页的后半部分(包括当前页)数字分页------------//
$j = $pagecount; if ($page<=5 && $pagecount>10)
$j = 10; if ($page>5 && $pagecount - $page >=5)
$j = $page + 5; for (; $i<$j; $i++)
$numpage[$i] = $i+1;
return $numpage;//返回数字分页}
就一个函数,自己把参数丢进去,出来的就是页码了。<?
function page_list($page=1,$pageurl,$max_pages,$list_size=9) //$page 当前页数 $pageurl 处理页的GET地址 $max_pages 最大页数 $list_size 左右各显示多少条
{
if(strstr($pageurl,"?"))
$pageurl.="&page=";
else
$pageurl.="?page="; ///要是没传?过来,这页就没什么用了,page=,大概都会用这个来传页数吧
$page=$page<1?1:$page;
$page=$page>$max_pages?$max_pages:$page; ///页数不正确后面就完蛋了
$start_page=$page-$list_size;
$start_page=$start_page<1?1:$start_page;
$end_page=$page+$list_size;
$end_page=$end_page>$max_pages?$max_pages:$end_page; ///这次显示的第一页码和最后一页码 for($i=$start_page;$i<=$end_page;$i++)
{
if($i!=$page)
$page_string.="<a href='$pageurl$i'>$i</a> ";
else
$page_string.="[ <b>$i</b> ] ";
}
$prepage=$page-1;
$nextpage=$page+1;
if($page>1)
$page_string="<a href='$pageurl$prepage'>上一页</a> ".$page_string;
if($page<$max_pages)
$page_string.="<a href='$pageurl$nextpage'>下一页</a> "; ///别忘了加上、下页
echo $page_string; ///大功告成,喜欢的话RETURN也可
}
var $execute,$query;
var $total_result = 0;
var $offset = "offset";
function execute($query){ global $DB,$db_prefix;
$GLOBALS[$this->offset] = (!isset($GLOBALS[$this->offset]) OR $GLOBALS[$this->offset]<0) ? 0 : $GLOBALS[$this->offset];
//$this->sql_result = $DB->query($query); $GLOBALS[$this->offset] = ($GLOBALS[$this->offset]>$this->total_result) ? $this->total_result-10 : $GLOBALS[$this->offset]; if (empty($this->limit)) {
$this->limit = 20;
} if (isset($this->limit)) {
$query .= " LIMIT " . $GLOBALS[$this->offset] . ", $this->limit";
$this->sql_result = $DB->query($query);
$this->num_pages = ceil($this->total_result/$this->limit);
}
if ($GLOBALS[$this->offset]+1 > $this->total_result) {
$GLOBALS[$this->offset] = $this->total_result-1;
} }
function show_num_pages($frew = "«", $rew = '上一页', $ffwd = '»', $fwd = '下一页', $separator = '') {
$current_pg = $GLOBALS[$this->offset]/$this->limit+1;
if ($current_pg > '5') {
$fgp = ($current_pg-5 > 0) ? $current_pg-5 : 1;
$egp = $current_pg+4;
if ($egp > $this->num_pages) {
$egp = $this->num_pages;
$fgp = ($this->num_pages-9 > 0) ? $this->num_pages-9 : 1;
}
} else {
$fgp = 1;
$egp = ($this->num_pages >= 10) ? 10 : $this->num_pages;
}
if($this->num_pages > 1) {
// searching for http_get_vars
foreach ($GLOBALS[HTTP_GET_VARS] as $_get_name => $_get_value) {
if ($_get_name != $this->offset) {
$this->_get_vars .= "&$_get_name=$_get_value";
}
}
$this->listNext = $GLOBALS[$this->offset] + $this->limit;
$this->listPrev = $GLOBALS[$this->offset] - $this->limit;
$this->theClass = $objClass;
if (!empty($rew)) { //$separator [$frew] $rew
$return .= ($GLOBALS[$this->offset] > 0) ? "<a href=\"$GLOBALS[PHP_SELF]?$this->offset=0$this->_get_vars\" $this->theClass title=\"第一页\">$frew</a> <a href=\"$GLOBALS[PHP_SELF]?$this->offset=$this->listPrev$this->_get_vars\" $this->theClass title=\"上一页\">$rew</a> $separator " : "";
} // showing pages
if ($this->show_pages_number || !isset($this->show_pages_number)) {
for($this->a = $fgp; $this->a <= $egp; $this->a++) {
$this->theNext = ($this->a-1)*$this->limit;
if ($this->theNext != $GLOBALS[$this->offset]) {
$return .= " <a href=\"$GLOBALS[PHP_SELF]?$this->offset=$this->theNext$this->_get_vars\" $this->theClass> ";
if ($this->number_type == 'alpha') {
$return .= chr(64 + ($this->a));
} else {
$return .= $this->a;
}
$return .= "</a> ";
} else {
if ($this->number_type == 'alpha') {
$return .= chr(64 + ($this->a));
} else {
$return .= "<b>$this->a</b>";
}
$return .= ($this->a < $this->num_pages) ? " $separator " : "";
}
}
$this->theNext = $GLOBALS[$this->offset] + $this->limit;
if (!empty($fwd)) {
$offset_end = ($this->num_pages-1)*$this->limit; //$separator $fwd [$ffwd]
$return .= ($GLOBALS[$this->offset] + $this->limit < $this->total_result) ? "$separator <a href=\"$GLOBALS[PHP_SELF]?$this->offset=$this->listNext$this->_get_vars\" $this->theClass title=\"下一页\">$fwd</a> <a href=\"$GLOBALS[PHP_SELF]?$this->offset=$offset_end$this->_get_vars\" $this->theClass title=\"最后一页\">$ffwd</a>" : "";
}
}
}
return $return;
} // [Function : Showing the Information for the Offset]
function show_info() {
$return .= "共: ".$this->total_result." , ";
$list_from = ($GLOBALS[$this->offset]+1 > $this->total_result) ? $this->total_result : $GLOBALS[$this->offset]+1;
$list_to = ($GLOBALS[$this->offset]+$this->limit >= $this->total_result) ? $this->total_result : $GLOBALS[$this->offset]+$this->limit;
//$return .= 'Showing Results from ' . $list_from . ' - ' . $list_to . '<br>';
$return .= "显示: ".$list_from ." - ".$list_to;
return $return;
} function pagenav() {
$return = "
<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"4\">
<tr>
<td>".$this->show_info()."</td>
<td align=\"right\">".$this->show_num_pages()."</td>
</tr>
</table>"; return $return;
}
}
?>