為查詢結果建立向後/向前按鈕

來源:互聯網
上載者:User
關鍵字 為查詢結果建立向後/向前按鈕
最近在Support Forums上有很多問題都是關於如何為一個搜尋結果製作象"向後 1 2 3 4 5 向前"樣子 的連結。我希望下面的指令碼可以協助你,在你的搜尋結果頁面中加入這種功能。這個例子是專為MySQL所寫 的,但是對於其它的SQL引擎也可以很容易地適應。

  因為每種應用都是不同的,這樣我使用了一些通用的語句進行MySQL查詢處理。TABLE名應該替換成你的 實際表名。YOUR CONDITIONAL HERE應該替換成你的where 條件,並且WHATEVER應該替換成你希望對結果進 行排序的欄位(如果你的應用需要降序排列,不要忘記加上DESC)。


$limit=20; // 返回的行
$numresults=mysql_query("select * from TABLE where YOUR CONDITIONAL HERE order by WHATEVER");
$numrows=mysql_num_rows($numresults);

// 接著判斷是否offset已經傳給指令碼了,如果沒有設為0
if (empty($offset)) {
  $offset=0;
}

// 取結果
$result=mysql_query("select id,name,phone ".
  "from TABLE where YOUR CONDITIONAL HERE ".
  "order by WHATEVER limit $offset,$limit");

// 現在可以顯示返回結果了
while ($data=mysql_fetch_array($result)) {
  // 在此處包含如你所願的顯示結果代碼
}

// 接著我們需要產生其它結果的連結

if ($offset==1) { // 如果offset為0,則忽略PREV連結
  $prevoffset=$offset-20;
  print "PREV n";
}

// 計算需要連結的頁面數
$pages=intval($numrows/$limit);

// 如果除後沒有餘數,$pages 現在包含需要頁面的整數值
if ($numrows%$limit) {
  // 如果有餘數那麼增加一頁
  $pages++;
}

for ($i=1;$i<=$pages;$i++) { // 迴圈
  $newoffset=$limit*($i-1);
  print "$i n";
}

// 檢查是否為最後一頁
if (!(($offset/$limit)==$pages) && $pages!=1) {
  // 如果不是下一頁,則給出向後連結
  $newoffset=$offset+$limit;
  print "NEXT

n";
}

?> 

  這些對你來說可能有些用。當然,你可能想要使HTML的輸出更乾淨一些... 

  而且,請注意在$PHP_SELF後的連結只包含了$offset。如果你需要為查詢的where條件傳遞參數的話, 你也需也需要把這些補在上面。 

  • 相關文章

    聯繫我們

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