以下为引用的内容: <?php class Page{
var $CountAll; //共有纪录数 var $CountPage; //每页显示记录数 var $Link; //显示 完整的分页信息 var $ForPage; //上一页 var $NextPage; //下一页 var $FirstPage; //第一页 var $LastPage; //最后一页 var $CurrPage; //第几页 var $PageNum; //共有多少页 var $Parameter; //参数 var $LimitNum; //不是统计全部记录,而是显示部分记录,例如共有100条记录,但是只统计显示前50条
function Page($sql, $num=30){
//初始化,统计记录数 $this->CountPage = $num; global $mysql; $sql = base64_decode($sql); $result = $mysql->Query($sql); if (0 != $mysql->AffectedRows()){ $row = $mysql->FetchArray($result); $this->CountAll = $row[0]; } else{ $this->CountAll = 0; } //print "共有 $this->CountAll <br>"; }
function ListPage($sql, $page=0,$sql_all,$other){ //查询,定义变量,获取数据
global $mysql; //print "sql sql<br>"; if (isset($this->LimitNum) && $this->CountAll > $this->LimitNum){ $this->CountAll = $this->LimitNum; }//更新总浏览记录数
$sql_src = $sql; //if ($page > 0){ $sql = base64_decode($sql); $sql_all = base64_decode($sql_all); $sql_src = $sql; //} //echo $sql; if (($this->CountAll % $this->CountPage) == 0)//统计共有多少页 $pagecount = (integer)($this->CountAll/$this->CountPage); else $pagecount = (integer)($this->CountAll/$this->CountPage) 1; $this->ageNum = $pagecount; if ($page > $this->ageNum)//如果页码超过页码总数则设为最大页码 $page = $this->ageNum; if ($page <= 0)//如果页码小于等于零则将页码设置为1 $page = 1;
if ($this->CountAll == 0) { $this->CurrPage = 0; }else{ $this->CurrPage = $page; } $first_start = ($page-1)*$this->CountPage; $sql = $sql." limit ".$first_start.", ".$this->CountPage; //print "2sql<br>"; $result = $mysql->Query($sql); if (0 != $mysql->AffectedRows()){ $i = 0; while($row = $mysql->FetchArray($result)){ $array[$i] = $row; //print "name:".$array[$i][Name]."<br>"; $i ; } }
$sql = base64_encode($sql_src); $sql_all = base64_encode($sql_all); if ($pagecount >1){ if($page == 1){ $nextpage = $page 1; $forpage = 1; $this->Link = "<button onClick="javascript:location.href='?query_sql=$sql&query_page=$nextpage".$this->Parameter."&sql_all=".$sql_all."".$other."'" class="button_a" style="width:30;height:22";><img src="images/next.gif" align="absmiddle"> </button><button onClick="javascript:location.href='?query_sql=$sql&query_page=$pagecount".$this->Parameter."&sql_all=".$sql_all."".$other."'" class="button_a" style="width:30;height:22";><img src="images/prev_end.gif" align="absmiddle"> </button>"; $this->NextPage = "<button onClick="javascript:location.href='?query_sql=$sql&query_page=$nextpage".$this->Parameter."&sql_all=".$sql_all."".$other."'" class="button_a" style="width:30;height:22";><img src="images/next.gif" align="absmiddle"> </button>"; $this->LastPage = "<button onClick="javascript:location.href='?query_sql=$sql&query_page=$pagecount".$this->Parameter."&sql_all=".$sql_all."".$other."'" class="button_a" style="width:30;height:22";><img src="images/prev_end.gif" align="absmiddle"> </button>"; } else if(($page > 1)&&($page < $pagecount)) { $forpage = $page-1; $nextpage = $page 1; $this->Link = "<button onClick="javascript:location.href='?query_sql=$sql&query_page=1".$this->Parameter."&sql_all=".$sql_all."".$other."'" class="button_a" style="width:30;height:22";><img src="images/prev_top.gif" align="absmiddle"> </button><button onClick="javascript:location.href='?query_sql=$sql&query_page=$forpage".$this->Parameter."&sql_all=".$sql_all."".$other."'" class="button_a" style="width:30;height:22";><img src="images/prev.gif" align="absmiddle"> </button><button onClick="javascript:location.href='?query_sql=$sql&query_page=$nextpage".$this->Parameter."&sql_all=".$sql_all."".$other."'" class="button_a" style="width:30;height:22";><img src="images/next.gif" align="absmiddle"> </button><button onClick="javascript:location.href='?query_sql=$sql&query_page=$pagecount".$this->Parameter."&sql_all=".$sql_all."".$other."'" class="button_a" style="width:30;height:22";><img src="images/prev_end.gif" align="absmiddle"> </button>"; $this->ForPage = "<button onClick="javascript:location.href='?query_sql=$sql&query_page=$forpage".$this->Parameter."&sql_all=".$sql_all."".$other."'" class="button_a" style="width:30;height:22";><img src="images/prev.gif" align="absmiddle"> </button>"; $this->NextPage = "<button onClick="javascript:location.href='?query_sql=$sql&query_page=$nextpage".$this->Parameter."&sql_all=".$sql_all."".$other."'" class="button_a" style="width:30;height:22";><img src="images/next.gif" align="absmiddle"> </button>"; $this->FirstPage = "<button onClick="javascript:location.href='?query_sql=$sql&query_page=1".$this->Parameter."&sql_all=".$sql_all."".$other."'" class="button_a" style="width:30;height:22";><img src="images/prev_top.gif" align="absmiddle"> </button>"; $this->LastPage = "<button onClick="javascript:location.href='?query_sql=$sql&query_page=$pagecount".$this->Parameter."&sql_all=".$sql_all."".$other."'" class="button_a" style="width:30;height:22";><img src="images/prev_end.gif" align="absmiddle"> </button>"; } else if ($page = $pagecount){ $forpage = $page-1; $nextpage = 1; $this->Link = "<button onClick="javascript:location.href='?query_sql=$sql&query_page=1".$this->Parameter."&sql_all=".$sql_all."".$other."'" class="button_a" style="width:30;height:22";><img src="images/prev_top.gif" align="absmiddle"> </button><button onClick="javascript:location.href='?query_sql=$sql&query_page=$forpage".$this->Parameter."&sql_all=".$sql_all."".$other."'" class="button_a" style="width:30;height:22";><img src="images/prev.gif" align="absmiddle"> </button>"; $this->FirstPage = "<button onClick="javascript:location.href='?query_sql=$sql&query_page=1".$this->Parameter."&sql_all=".$sql_all."".$other."'" class="button_a" style="width:30;height:22";><img src="images/prev_top.gif" align="absmiddle"> </button>"; $this->ForPage = "<button onClick="javascript:location.href='?query_sql=$sql&query_page=$forpage".$this->Parameter."&sql_all=".$sql_all."".$other."'" class="button_a" style="width:30;height:22";><img src="images/prev.gif" align="absmiddle"> </button>"; } } else{ $this->Link = ' '; }
return $array;//$array;
}
} /*************** 使用例子
include("class.config.php"); include("class.mysql.php"); include("class.page.php"); global $mysql; $config = new Config; $mysql = new TDatabase($config);
$query_all = "select count(*) from user"; $page_object = new Page($query_all,20); //new Page('统计记录个数语句',每页记录个数) if(empty($query_page)) $query_sql = "select * from user"; //注意这里的变量名必须为 $query_sql $query_page ,因为下一页的连接参数默认为 query_sql query_page
$list = $page_object->ListPage($query_sql,$query_page); //ListPage('没有limit的前一部分,系统自动根据补齐',察看的页数) $page_object->Parameter = '&action=view'; //这是传送的Url 所带的其它参数,如果有就修改变量 Parameter ,系统自动将她补在后面 //显示数据 for ($i=0;$i< $page_object->CountPage;$i ) print $list[$i][ID]."->".$list[$i][UserName]."<br>"; //返回的数据为二维哈西(关联)数组,一维为纪录的标识ID号,二维为哈西(关联)数组,取值标识建议采取用数据库中字段名的方法,例如list[0][UserName]。
//显示其他相关数据 echo $page_object->CountAll;//纪录总数 echo $page_object->CountPage;//每页显示数据个数 echo $page_object->Link;//显示完整的分页信息 echo $page_object->FirstPage;//第一页 echo $page_object->NextPage;//下一页 echo $page_object->ForPage;//上一页 echo $page_object->LastPage;//最后一页 echo $page_object->CurrPage;//第几页 echo $page_object->PageNum;//共有多少页 $mysql->DatabaseClose(); ****************/
?>
|