[php]實現像GOOGLE一樣分頁效果的代碼

來源:互聯網
上載者:User

用到的函數: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\">首頁</a></td>\n<td><a href=\"$url=".($currentPage-1)."\">上一頁</a></td>\n"
: "<td>首頁</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 ) . "\">下一頁</a></td>\n<td><a href=\"$url=" . ( $total )."\">尾頁</a>\n</td>"
: "<td>尾頁</td>\n";
$re="<table style=text-align:center><tr>$re</tr></table>";
return $re;
}
使用很簡單
先包括上面的函數

先檢索出總的記錄條數。
自己定義一下每頁顯示多少條:
然後總的頁數

$total_row=...;//此為您檢索出來的總的記錄數
$pagesize=10;
//=======================
//補充如果是整數的話。可以再判斷一下如果餘數為0就不加1啊。
$totalPage =($total_row%$pagesize==0) ?intval($total_row/$pagesize): intval($total_row/$pagesize)+1;
//=======================
//$totalPage = intval($total_row/$pagesize)+1 ; //總頁數 ,為什麼要加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;
//上面這兩句大家能明白意思不,不要被那個?:嚇到,其實就等到if...else.....呵呵
下面為怎樣檢索MYSQL
我唯寫也關鍵的那條語句就行了。呵呵。不要罵我懶啊。
首先讓我來帶大家瞭解一下LIMIT
LIMIT如果後面只有一個數字,則為檢錄前多少條。比如LIMIT 20 只為取前20條做為檢索的結果。
如果後面有兩具數字。則為從多少條起檢索多少條,比如 LIMIT 20,10 為從第20條起取10條,那麼結果組為21-30條。
好,下面我們就用這個屬性來分頁:
(天好冷啊,廈門竟然還會這麼手冷,暈死,回家過年得了。呵呵。好肺話啊。表打我哦 各位看官,先發表一下,等下再來編輯,不要不小心關年掉了,那不哭死我啊。小便一下先)
(回來了。呵呵)
我們繼續上面的講
我們用一條mysql語句來說明:

$strQuery="select * from myTable limit $offset,$pagesize";
大家看到沒有,上面出現了兩個變數,一個為$offset,一個為$pagesize。
$pagesize大家都知道是什麼了是吧。什嗎?不知道,自己看上面去。
這個$offset即為起始變數,還刻我們剛才提到的LIMIT 20,10嗎。
好了,那麼我們現在就來敲定這個$offset

其實 $offset = $pagesize*($currentPage-1);

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.