欧美日韩一区二区三区四区不卡,日韩欧美视频一区二区三区四区,久久精品欧美一区二区三区不卡,国产精品久久久乱弄

咨詢電話:186 7916 6165 咨詢電話:186 7916 6165 (微信同號)    在線QQ:181796286
NEWS BLOG ·
學無止境
關注開優(yōu)網(wǎng)絡 關注前沿
PHP自定義驗證碼
PHP顯示會員注冊IP地理位置

PHP自定義分頁類

發(fā)表日期:2015-10-30    文章編輯:南昌開優(yōu)網(wǎng)絡    瀏覽次數(shù):5070    標簽:PHP應用

<?php
/**
** lino的通用php分頁類。(仿Google樣式)
** 只需提供記錄總數(shù)與每頁顯示數(shù)兩個參數(shù)。(已附詳細使用說明.....)
** 無需指定URL,鏈接由程序生成。方便用于檢索結果分頁。

**/

class Pager{
var $url;
var $countall;
var $page;
var $thestr;
var $backstr;
var $nextstr;
var $pg;
//構造函數(shù),實例化該類的時候自動執(zhí)行該函數(shù)
function Pager($countall,$countlist){
@$this->pg=sprintf("%d",$_GET["pg"]);
//保證pg在未指定的情況下為從第1頁開始
if ($this->pg==0){
$this->pg=1;
}
if (!isset($this->pg)){
$this->pg=1;
}
//記錄數(shù)與每頁顯示數(shù)不能整隊時,頁數(shù)取余后加1
$this->countall = $countall;
if ($this->countall%$countlist!=0){
$this->page=sprintf("%d",$this->countall/$countlist)+1;
}
else{
$this->page=$this->countall/$countlist;
}

//得到當前的URL。具體實現(xiàn)請看最底部的函數(shù)實體
$this->url = Pager::getUrl();

//生成12345等數(shù)字形式的分頁。
if ($this->page<=10){
for ($i=1;$i<$this->page+1;$i++){
$this->thestr=$this->thestr.Pager::makepg($i,$this->pg);
}
}
else{
if ($this->pg<=5){
for ($i=1;$i<10;$i++){
$this->thestr=$this->thestr.Pager::makepg($i,$this->pg);
}
}
else{
if (6+$this->pg<=$this->page){
for ($i=$this->pg-4;$i<$this->pg+6;$i++){
$this->thestr=$this->thestr.Pager::makepg($i,$this->pg); 
}
}
else{
for ($i=$this->pg-4;$i<$this->page+1;$i++){
$this->thestr=$this->thestr.Pager::makepg($i,$this->pg);
}

}
}
}
//生成上頁下頁等文字鏈接
$this->backstr = Pager::gotoback($this->pg);
$this->nextstr = Pager::gotonext($this->pg,$this->page);
echo ($this->backstr.$this->thestr.$this->nextstr." 共".$this->countall." 條,每頁".$countlist."條,分".$this->page."頁");
}
//生成數(shù)字分頁的輔助函數(shù)
function makepg($i,$pg){
if ($i==$pg){
return " <font color=red><b>".$i."</b></font>";
}
else{
return " <a href=".Pager::replacepg($this->url,5,$i).">".$i."</a>";
}
}
//生成上一頁等信息的函數(shù)
function gotoback($pg){
if ($pg-1>0){
return $this->gotoback=" <a href=".Pager::replacepg($this->url,3,0).">首頁</a> <a href=".Pager::replacepg($this->url,2,0).">上頁</a>";
}
else{
return $this->gotoback="";
}

}
//生成下一頁等信息的函數(shù)
function gotonext($pg,$page){
if ($pg < $page){
return " <a href=".Pager::replacepg($this->url,1,0).">下頁</a> <a href=".Pager::replacepg($this->url,4,0).">尾頁</a>";
}
else{
return "";
}
}

//處理url中$pg的方法,用于自動生成pg=x
function replacepg($url,$flag,$i){
if ($flag == 1){ 
$temp_pg = $this->pg;
return str_replace("pg=".$temp_pg,"pg=".($this->pg+1),$url);
}
else if($flag == 2) {
$temp_pg = $this->pg;
return str_replace("pg=".$temp_pg,"pg=".($this->pg-1),$url);
}
else if($flag == 3) {
$temp_pg = $this->pg;
return str_replace("pg=".$temp_pg,"pg=1",$url);
}
else if($flag == 4){
$temp_pg = $this->pg;
return str_replace("pg=".$temp_pg,"pg=".$this->page,$url);
}
else if($flag == 5){
$temp_pg = $this->pg;
return str_replace("pg=".$temp_pg,"pg=".$i,$url);
}
else{
return $url;
}
}


//獲得當前URL的方法
function getUrl(){ 
$url="http://".$_SERVER["HTTP_HOST"];

if(isset($_SERVER["REQUEST_URI"])){ 
$url.=$_SERVER["REQUEST_URI"]; 
} 
else{ 
$url.=$_SERVER["PHP_SELF"]; 
if(!empty($_SERVER["QUERY_STRING"])){ 
$url.="?".$_SERVER["QUERY_STRING"]; 
} 
} 
//在當前的URL里加入pg=x字樣
if (!ereg("(pg=|PG=|pG=|Pg=)", $url)){
if (!strpos($url,"?")){
$url = $url."?pg=1";
}
else{
$url = $url."&pg=1";
}
} 
return $url; 
} 
}
?>


調(diào)用:PHP部分
require 'includes/page.inc.php'; //引用上面的分頁

$pg = @$_REQUEST["pg"]; //接收當前的頁碼。

$pg = @ $_REQUEST["pg"]; //接收當前的頁碼。

$pagelist = 10; //設定每頁顯示10條記錄

$limitFrom = 0; //開始limit的數(shù),用于當前pg(即頁碼)小于2的場合。此時sql的語句為..... limit 0,10

if (!isset ($pg) || $pg < 0 || !is_numeric($pg)) { //當請求的頁碼不存在或小于0或者不是數(shù)字時
$pg = 1; //把頁碼設定為第一頁
}else {
$pg=intval($pg);  //取整數(shù)。當傳入的值為1.2/1.3時取整
}

$_nuw = "select count(*) as total from user";  //求和的sql 語句

$res = mysql_fetch_assoc(_query($_nuw));  //以數(shù)組的形式顯示sql

$countAll = $res['total'];  //定義總和的變量

if($countAll==0){   //當總和為0時 頁碼就為1
$_pageabsolute = 1;
}else {  
$_pageabsolute=ceil($countAll / $pagelist); //否則就是總數(shù)除以頁大小再進一取整
}
if($pg>$_pageabsolute){//當請求的頁碼大于總的頁數(shù)時就等于最大頁數(shù)
$pg=$_pageabsolute;
}

if ($pg > 1) { //當頁碼大于1 的時候,需要設定limitFrom。此時sql可能為 limit 30,10
$limitFrom = $pagelist * ($pg -1); //這是個計算limitFrom小算法,仔細看看就能明白了。
} else {
$limitFrom = 0;
}

$_result = "SELECT username,sex,face FROM user ORDER BY id desc LIMIT " . $limitFrom . "," . $pagelist;   //sql語句傳limit 和頁大小

$_rs=_query($_result);  //返回查詢出來的結果集

html部分調(diào)用
<?php while ($_rows=mysql_fetch_assoc($_rs)){?>//采用while語句循環(huán)查詢出來的結果集
<dl>
<dd class="user"><?php echo $_rows['username'].($_rows['sex'])?></dd>
<dt><img src="<?php echo $_rows['face']?>" alt="<?php echo $_rows['username']?>"></dt>
<dd class="message">發(fā)短信</dd>
<dd class="friend">加為好友</dd>
<dd class="guest">寫留言</dd>
<dd class="flower">給他送花</dd>
</dl>
<?php }?>

//顯示分頁
<div class="digg"><?php $pager = new Pager($countAll,$pagelist);?></div>  
主站蜘蛛池模板: 军事| 清新县| 乌什县| 宝坻区| 绥江县| 调兵山市| 富蕴县| 河北省| 裕民县| 阳东县| 长岛县| 南安市| 图木舒克市| 聊城市| 郑州市| 金寨县| 民勤县| 汉沽区| 长宁县| 徐汇区| 西乌| 东山县| 麻城市| 甘泉县| 广元市| 葵青区| 西吉县| 观塘区| 读书| 通江县| 伊春市| 扬中市| 德化县| 黎川县| 缙云县| 三河市| 晴隆县| 会昌县| 襄汾县| 都江堰市| 茌平县|