明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線(xiàn)學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

為查詢(xún)結(jié)果創(chuàng)建向后/向前按鈕

[摘要]最近在Support Forums上有很多問(wèn)題都是關(guān)于如何為一個(gè)搜索結(jié)果制作象"向后 1 2 3 4 5 向前"樣子 的鏈接。我希望下面的腳本可以幫助你,在你的搜索結(jié)果頁(yè)面中加入這種功能。這個(gè)例子是專(zhuān)為MySQL所寫(xiě) 的,但是對(duì)于其它的SQL引擎也可以很容易地適應(yīng)。   因?yàn)槊?..
最近在Support Forums上有很多問(wèn)題都是關(guān)于如何為一個(gè)搜索結(jié)果制作象"向后 1 2 3 4 5 向前"樣子 的鏈接。我希望下面的腳本可以幫助你,在你的搜索結(jié)果頁(yè)面中加入這種功能。這個(gè)例子是專(zhuān)為MySQL所寫(xiě) 的,但是對(duì)于其它的SQL引擎也可以很容易地適應(yīng)。

  因?yàn)槊糠N應(yīng)用都是不同的,這樣我使用了一些通用的語(yǔ)句進(jìn)行MySQL查詢(xún)處理。TABLE名應(yīng)該替換成你的 實(shí)際表名。YOUR CONDITIONAL HERE應(yīng)該替換成你的where 條件,并且WHATEVER應(yīng)該替換成你希望對(duì)結(jié)果進(jìn) 行排序的字段(如果你的應(yīng)用需要降序排列,不要忘記加上DESC)。

<?php

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

// 接著判斷是否offset已經(jīng)傳給腳本了,如果沒(méi)有設(shè)為0
if (empty($offset)) {
    $offset=0;
}

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

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

// 接著我們需要生成其它結(jié)果的鏈接

if ($offset==1) { // 如果offset為0,則忽略PREV鏈接
    $prevoffset=$offset-20;
    print "<a href="$PHP_SELF?offset=$prevoffset">PREV</a> &nbsp; n";
}

// 計(jì)算需要鏈接的頁(yè)面數(shù)
$pages=intval($numrows/$limit);

// 如果除后沒(méi)有余數(shù),$pages 現(xiàn)在包含需要頁(yè)面的整數(shù)值
if ($numrows%$limit) {
    // 如果有余數(shù)那么增加一頁(yè)
    $pages++;
}

for ($i=1;$i<=$pages;$i++) { // 循環(huán)
    $newoffset=$limit*($i-1);
    print "<a href="$PHP_SELF?offset=$newoffset">$i</a> &nbsp; n";
}

// 檢查是否為最后一頁(yè)
if (!(($offset/$limit)==$pages) && $pages!=1) {
    // 如果不是下一頁(yè),則給出向后鏈接
    $newoffset=$offset+$limit;
    print "<a href="$PHP_SELF?offset=$newoffset">NEXT</a><p>n";
}

?>  

  這些對(duì)你來(lái)說(shuō)可能有些用。當(dāng)然,你可能想要使HTML的輸出更干凈一些...  

  而且,請(qǐng)注意在$PHP_SELF后的鏈接只包含了$offset。如果你需要為查詢(xún)的where條件傳遞參數(shù)的話(huà), 你也需也需要把這些補(bǔ)在上面。