[php]實(shí)現(xiàn)像GOOGLE一樣分頁(yè)效果的代碼
更新時(shí)間:2007年05月20日 00:00:00 作者:
用到的函數(shù):PAGE();
function page ($totalPage , $currentPage,$url ,$halfPer,$imagePath)
{
$total=$totalPage;
$currentPage=($currentPage<1)?1:$currentPage;
$currentPage=($currentPage>$totalPage)?$totalPage:$currentPage;
//echo $currentPage;
$re="";
$re .= ( $currentPage > 1 )
? "<td><a href=\"$url=1\">首頁(yè)</a></td>\n<td><a href=\"$url=".($currentPage-1)."\">上一頁(yè)</a></td>\n"
: "<td>首頁(yè)</td>\n";
for ( $i = $currentPage - $halfPer,$i >= 1 || $i = 1 ,$j = $currentPage + $halfPer, $j < $totalPage || $j = $totalPage;$i <= $j ;$i++ )
{//核心算法!
$re .= ($i == $currentPage)
? "<td><b class=currentPage> [$i] </b></td>\n"
: "<td><a href=\"$url=$i\"> [$i] </a></td>\n";
}
$re .= ( $currentPage < $total )
? "<td><a href=\"$url=" . ( $currentPage + 1 ) . "\">下一頁(yè)</a></td>\n<td><a href=\"$url=" . ( $total )."\">尾頁(yè)</a>\n</td>"
: "<td>尾頁(yè)</td>\n";
$re="<table style=text-align:center><tr>$re</tr></table>";
return $re;
}
使用很簡(jiǎn)單
先包括上面的函數(shù)
先檢索出總的記錄條數(shù)。
自己定義一下每頁(yè)顯示多少條:
然后總的頁(yè)數(shù)
$total_row=...;//此為您檢索出來(lái)的總的記錄數(shù)
$pagesize=10;
//=======================
//補(bǔ)充如果是整數(shù)的話??梢栽倥袛嘁幌氯绻鄶?shù)為0就不加1啊。
$totalPage =($total_row%$pagesize==0) ?intval($total_row/$pagesize): intval($total_row/$pagesize)+1;
//=======================
//$totalPage = intval($total_row/$pagesize)+1 ; //總頁(yè)數(shù) ,為什么要加1呢。呵呵。自己去想想:)
$currentPage = intval($_GET['page']);
$url = "?page";
$halfPer = 5;
$imagePath ="images";
$pageHtml = page ( $totalPage , $currentPage,$url ,$halfPer,$imagePath);
//echo $pageHtml ;
$currentPage=($currentPage<1)?1:$currentPage;
$currentPage=($currentPage>$totalPage)?$totalPage:$currentPage;
//上面這兩句大家能明白意思不,不要被那個(gè)?:嚇到,其實(shí)就等到if...else.....呵呵
下面為怎樣檢索MYSQL
我只寫也關(guān)鍵的那條語(yǔ)句就行了。呵呵。不要罵我懶啊。
首先讓我來(lái)帶大家了解一下LIMIT
LIMIT如果后面只有一個(gè)數(shù)字,則為檢錄前多少條。比如LIMIT 20 只為取前20條做為檢索的結(jié)果。
如果后面有兩具數(shù)字。則為從多少條起檢索多少條,比如 LIMIT 20,10 為從第20條起取10條,那么結(jié)果組為21-30條。
好,下面我們就用這個(gè)屬性來(lái)分頁(yè):
(天好冷啊,廈門竟然還會(huì)這么手冷,暈死,回家過(guò)年得了。呵呵。好肺話啊。表打我哦 各位看官,先發(fā)表一下,等下再來(lái)編輯,不要不小心關(guān)年掉了,那不哭死我啊。小便一下先)
(回來(lái)了。呵呵)
我們繼續(xù)上面的講
我們用一條mysql語(yǔ)句來(lái)說(shuō)明:
$strQuery="select * from myTable limit $offset,$pagesize";
大家看到?jīng)]有,上面出現(xiàn)了兩個(gè)變量,一個(gè)為$offset,一個(gè)為$pagesize。
$pagesize大家都知道是什么了是吧。什么?不知道,自己看上面去。
這個(gè)$offset即為起始變量,還刻我們剛才提到的LIMIT 20,10嗎。
好了,那么我們現(xiàn)在就來(lái)敲定這個(gè)$offset
其實(shí) $offset = $pagesize*($currentPage-1);
function page ($totalPage , $currentPage,$url ,$halfPer,$imagePath)
{
$total=$totalPage;
$currentPage=($currentPage<1)?1:$currentPage;
$currentPage=($currentPage>$totalPage)?$totalPage:$currentPage;
//echo $currentPage;
$re="";
$re .= ( $currentPage > 1 )
? "<td><a href=\"$url=1\">首頁(yè)</a></td>\n<td><a href=\"$url=".($currentPage-1)."\">上一頁(yè)</a></td>\n"
: "<td>首頁(yè)</td>\n";
for ( $i = $currentPage - $halfPer,$i >= 1 || $i = 1 ,$j = $currentPage + $halfPer, $j < $totalPage || $j = $totalPage;$i <= $j ;$i++ )
{//核心算法!
$re .= ($i == $currentPage)
? "<td><b class=currentPage> [$i] </b></td>\n"
: "<td><a href=\"$url=$i\"> [$i] </a></td>\n";
}
$re .= ( $currentPage < $total )
? "<td><a href=\"$url=" . ( $currentPage + 1 ) . "\">下一頁(yè)</a></td>\n<td><a href=\"$url=" . ( $total )."\">尾頁(yè)</a>\n</td>"
: "<td>尾頁(yè)</td>\n";
$re="<table style=text-align:center><tr>$re</tr></table>";
return $re;
}
使用很簡(jiǎn)單
先包括上面的函數(shù)
先檢索出總的記錄條數(shù)。
自己定義一下每頁(yè)顯示多少條:
然后總的頁(yè)數(shù)
$total_row=...;//此為您檢索出來(lái)的總的記錄數(shù)
$pagesize=10;
//=======================
//補(bǔ)充如果是整數(shù)的話??梢栽倥袛嘁幌氯绻鄶?shù)為0就不加1啊。
$totalPage =($total_row%$pagesize==0) ?intval($total_row/$pagesize): intval($total_row/$pagesize)+1;
//=======================
//$totalPage = intval($total_row/$pagesize)+1 ; //總頁(yè)數(shù) ,為什么要加1呢。呵呵。自己去想想:)
$currentPage = intval($_GET['page']);
$url = "?page";
$halfPer = 5;
$imagePath ="images";
$pageHtml = page ( $totalPage , $currentPage,$url ,$halfPer,$imagePath);
//echo $pageHtml ;
$currentPage=($currentPage<1)?1:$currentPage;
$currentPage=($currentPage>$totalPage)?$totalPage:$currentPage;
//上面這兩句大家能明白意思不,不要被那個(gè)?:嚇到,其實(shí)就等到if...else.....呵呵
下面為怎樣檢索MYSQL
我只寫也關(guān)鍵的那條語(yǔ)句就行了。呵呵。不要罵我懶啊。
首先讓我來(lái)帶大家了解一下LIMIT
LIMIT如果后面只有一個(gè)數(shù)字,則為檢錄前多少條。比如LIMIT 20 只為取前20條做為檢索的結(jié)果。
如果后面有兩具數(shù)字。則為從多少條起檢索多少條,比如 LIMIT 20,10 為從第20條起取10條,那么結(jié)果組為21-30條。
好,下面我們就用這個(gè)屬性來(lái)分頁(yè):
(天好冷啊,廈門竟然還會(huì)這么手冷,暈死,回家過(guò)年得了。呵呵。好肺話啊。表打我哦 各位看官,先發(fā)表一下,等下再來(lái)編輯,不要不小心關(guān)年掉了,那不哭死我啊。小便一下先)
(回來(lái)了。呵呵)
我們繼續(xù)上面的講
我們用一條mysql語(yǔ)句來(lái)說(shuō)明:
$strQuery="select * from myTable limit $offset,$pagesize";
大家看到?jīng)]有,上面出現(xiàn)了兩個(gè)變量,一個(gè)為$offset,一個(gè)為$pagesize。
$pagesize大家都知道是什么了是吧。什么?不知道,自己看上面去。
這個(gè)$offset即為起始變量,還刻我們剛才提到的LIMIT 20,10嗎。
好了,那么我們現(xiàn)在就來(lái)敲定這個(gè)$offset
其實(shí) $offset = $pagesize*($currentPage-1);
相關(guān)文章
BitDefender 2008 系列簡(jiǎn)體中文預(yù)覽第三版+注冊(cè)機(jī) 迅雷下載
官網(wǎng)上面于3月6日發(fā)布了BitDefender 2008 全系列簡(jiǎn)體中文預(yù)覽版(第三版)。數(shù)字簽名是2008年3月6日 BitDefender是來(lái)自羅馬尼亞的老牌殺毒軟件,BitDefender Internet Security 2008包含反病毒系統(tǒng)、網(wǎng)絡(luò)防火墻、反垃圾郵件、反間諜軟件、家長(zhǎng)控制中心5個(gè)安全模塊,提供你所需的所有計(jì)算機(jī)安全防護(hù),保護(hù)你免受各種已知和未知病 毒、黑客、垃圾郵件、間諜軟件、惡意網(wǎng)頁(yè)以及其它internet威脅,支持在線更新,全面保護(hù)家庭上網(wǎng)安全.2008-03-03AVG Anti-Virus 7.5 Build 476a1043
AVG Anti-Virus 7.5 Build 476a1043...2007-06-06U盤病毒專殺工具V6.0 Build20070313(完全版) 下載
U盤病毒專殺工具V6.0 Build20070313(完全版) 下載...2007-03-03可以恢復(fù)flashfxp密碼的FlashFXP Password Recovery v1.0.160.2006 漢化版
可以恢復(fù)flashfxp密碼的FlashFXP Password Recovery v1.0.160.2006 漢化版...2007-10-10access dbase excel foxpro 數(shù)據(jù)庫(kù)瀏覽器V3.1版 下載
access dbase excel foxpro 數(shù)據(jù)庫(kù)瀏覽器V3.1版 下載...2007-04-04