PHP MySQL下分頁顯示的實現

來源:互聯網
上載者:User
最近,論壇裡有很我人都在問如何?查詢結果的分頁顯示。我希望下面的這段代碼對你改進自己的程式能有所協助。這些代碼是用於MYSQL的,但很容易移植到其它SQL上。
 
  由於每個程式的特殊性,所以我在MYSQL的查詢裡使用了一些很通用的語句。用你的表名替換TABLE;用你的條件陳述式代替YOUR_CONDITION_HERE;用你希望按其排序的欄位名代替WHATEVER(當然如果要排倒序,別忘了加上DESC子句)。
 
<?php
$qh=mysql_query("SELECT COUNT(*) AS rcnt FROM TABLE WHERE YOUR_CONDITION_HERE ORDER BY WHATEVER");
$data=mysql_fetch_array($qh);
$nr=$data["rcnt"];
//判斷位移量參數是否傳遞給了指令碼,如果沒有就使用預設值0
if (empty($offset))
{
$offset=0;
}
//查詢結果(這裡是每頁20條,但你自己完全可以改變它)
$result=mysql_query("SELECT id,name,phone FROM TABLE WHERE YOUR_CONDITION_HERE ORDER BY WHATEVER LIMIT $offset, 20");

//顯示返回的20條記錄
while ($data=mysql_fetch_array($result))
{
//換成你用於顯示返回記錄的代碼
}
//下一步,要寫出到其它頁面的連結
if(!$offset) //如果位移量是0,不顯示前一頁的連結
{
$preoffset=$offset-20;
print "<a href="$PHP_SELF?offset=$preoffset">前一頁</a>&nbsp;";
}
//計算總共需要的頁數
$pages=ceil($nr/20); //$pages變數現在包含所需的頁數
for ($i=1; $i <= $pages; $i )
{
$newoffset=20*$i;
print "<a href="$PHP_SELF?offset=$newoffset">$i</a>&nbsp;";
}
//檢查是否是最後一頁
if ($pages!=0 && ($newoffset/20)!=$pages)
{
print "<a href="$PHP_SELF?offset=$newoffset">下一頁</a>&nbsp;";
}
?>
這隻是向你大概地介紹了實現將查詢結果分頁顯示的方法,其他的功能你自己完成。
 
注意兩點:$PHP_SELF只有位移量一個參數,你可以根據需要加入自己的東西;這種辦法對包含百萬條記錄以上的表的查詢效率不高。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.