66 lines
2.4 KiB
PHP
66 lines
2.4 KiB
PHP
|
|
<?php
|
|||
|
|
//ͨ<>÷<EFBFBD>ҳ<EFBFBD><D2B3>
|
|||
|
|
class myPage extends myConn{
|
|||
|
|
function getpage($field,$table,$where,$order='',$pageSize=10,$linkNum=7,$page=1,$conn=''){
|
|||
|
|
if($conn) $this->links($conn);
|
|||
|
|
if(!preg_match('/^[0-9]+$/i',$page) || !$page) $page=1;
|
|||
|
|
|
|||
|
|
$sql="select $field from $table ";
|
|||
|
|
if($where){ $sql.=" WHERE $where "; }
|
|||
|
|
if($order){ $sql.=" order by $order "; }
|
|||
|
|
$totalNum=$this->getcount($sql);//<2F><><EFBFBD><EFBFBD>
|
|||
|
|
$rs=$this->query($sql);
|
|||
|
|
$maxPage = (int)ceil($totalNum/$pageSize); //<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD> $maxPage
|
|||
|
|
if((int)$page>$maxPage) $page=$maxPage;
|
|||
|
|
if(mssql_data_seek($rs,($page-1)*$pageSize)){
|
|||
|
|
for($p=0;$p<$pageSize;$p++){
|
|||
|
|
$row=$this->getfetch($rs);
|
|||
|
|
$Snum=$totalNum-$p-($pageSize*$page)+$pageSize;//<2F><><EFBFBD>к<EFBFBD>
|
|||
|
|
if($row) $rot[]=$row+array("Snum"=>$Snum);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
$this->start=($page-round($linkNum/2))>0 ? ($page-round($linkNum/2)) : "1";
|
|||
|
|
$this->end=($page+round($linkNum/2))<$maxPage ? ($page+round($linkNum/2)) : $maxPage;
|
|||
|
|
$this->maxPage=$maxPage;//<2F><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>
|
|||
|
|
$this->pageSize=$pageSize;//ÿҳ<C3BF><D2B3>ʾ
|
|||
|
|
$this->linkNum=$linkNum;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>
|
|||
|
|
$this->totalNum=$totalNum;//<2F><><EFBFBD><EFBFBD>
|
|||
|
|
$this->page=$page;//<2F><>ǰҳ
|
|||
|
|
return $rot;
|
|||
|
|
unset($sql,$rs,$row,$rot);
|
|||
|
|
if($conn) $this->close();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function getpages($sql,$pageSize=10,$linkNum=7,$page=1,$conn=''){
|
|||
|
|
if($conn) $this->links($conn);
|
|||
|
|
if(!preg_match('/^[0-9]+$/i',$page) || !$page) $page=1;
|
|||
|
|
$totalNum=$this->getcount($sql);//<2F><><EFBFBD><EFBFBD>
|
|||
|
|
$rs=$this->query($sql);
|
|||
|
|
$maxPage = (int)ceil($totalNum/$pageSize); //<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD> $maxPage
|
|||
|
|
if((int)$page>$maxPage) $page=$maxPage;
|
|||
|
|
if(mssql_data_seek($rs,($page-1)*$pageSize)){
|
|||
|
|
for($p=0;$p<$pageSize;$p++){
|
|||
|
|
$row=$this->getfetch($rs);
|
|||
|
|
$Snum=$totalNum-$p-($pageSize*$page)+$pageSize;//<2F><><EFBFBD>к<EFBFBD>
|
|||
|
|
if($row) $rot[]=$row+array("Snum"=>$Snum);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
$this->start=($page-round($linkNum/2))>0 ? ($page-round($linkNum/2)) : "1";
|
|||
|
|
$this->end=($page+round($linkNum/2))<$maxPage ? ($page+round($linkNum/2)) : $maxPage;
|
|||
|
|
$this->maxPage=$maxPage;//<2F><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>
|
|||
|
|
$this->pageSize=$pageSize;//ÿҳ<C3BF><D2B3>ʾ
|
|||
|
|
$this->linkNum=$linkNum;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>
|
|||
|
|
$this->totalNum=$totalNum;//<2F><><EFBFBD><EFBFBD>
|
|||
|
|
$this->page=$page;//<2F><>ǰҳ
|
|||
|
|
return $rot;
|
|||
|
|
unset($sql,$rs,$row,$rot);
|
|||
|
|
if($conn) $this->close();
|
|||
|
|
}
|
|||
|
|
function getpagecs(){ //<2F><>ȡ<EFBFBD><C8A1>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD>
|
|||
|
|
$myarray = array('Page'=>$this->page,'Start'=>$this->start,'End'=>$this->end,'maxPage'=>$this->maxPage,'pageSize'=>$this->pageSize,'linkNum'=>$this->linkNum,'totalNum'=>$this->totalNum);
|
|||
|
|
return $myarray;
|
|||
|
|
}
|
|||
|
|
function __destruct(){//<2F>ͷ<EFBFBD><CDB7><EFBFBD>
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
?>
|