MySQL查詢結(jié)果的分頁

隨著數(shù)據(jù)庫的增長,在單個頁面上顯示查詢的所有結(jié)果已不再實用。這就是PHP和MySQL中分頁的地方。您可以在多個頁面上顯示結(jié)果,每個頁面都鏈接到下一個頁面,以允許您的用戶以一咬大小瀏覽網(wǎng)站上的內(nèi)容。

01

04

教育資源網(wǎng)_1

設(shè)置變量

下面的代碼首先連接到數(shù)據(jù)庫。然后您需要知道要顯示結(jié)果的哪個頁面。if(!(isset($pagenum)))代碼檢查頁碼($pagenum)isn't設(shè)置,如果是,則將其設(shè)置為1。如果已經(jīng)設(shè)置了頁碼,則忽略此代碼。

您運行查詢。應(yīng)編輯$data行以應(yīng)用于您的網(wǎng)站并返回計算結(jié)果所需的內(nèi)容。然后,$行行僅計算查詢結(jié)果的數(shù)量。

接下來,您定義$頁面?行,這是在轉(zhuǎn)到下一頁結(jié)果之前要在每頁上顯示的結(jié)果數(shù)。然后,您可以通過將結(jié)果(行)的總量除以每頁所需的結(jié)果數(shù)來計算($last)的總頁數(shù)。在這里使用CEIL將所有數(shù)字舍入到下一個整數(shù)。

接下來,代碼運行檢查以確保頁碼有效。如果該數(shù)字少于一個或大于頁數(shù),則會重置為內(nèi)容最接近的頁碼。

最后,使用限制函數(shù)為結(jié)果設(shè)置范圍($max)。起始編號是通過將每頁的結(jié)果乘以比當前頁面少一個來確定的。持續(xù)時間是每頁顯示的結(jié)果數(shù)量。

02

of 04

用于設(shè)置分頁變量的代碼

//連接到您的數(shù)據(jù)庫

mysql U連接(34);your.hostaddress.com",&##34;用戶名","密碼")或模具(mysql Uerror());

mysql選擇"地址&##34;)或die(mysql Uerror());

//這將檢查是否有頁碼。如果沒有,它將設(shè)置為第1頁

如果(?。╥sset($pagenum)))

{

$pagenum=1;

}

//在這里,我們計算結(jié)果的數(shù)量82

//編輯$數(shù)據(jù)作為您的查詢

$data=mysql#query("從topsites中選擇*")或die(mysql UERROR());

$行=mysql?num?行($data);

//這是每頁顯示的結(jié)果數(shù)量

$頁面行=4;

//這告訴我們最后一頁的頁碼94

$last=ceil($rows/$page?rows);

//這確保頁碼為'低于1,或超過我們的最大頁面

如果($pagenum

{

$pagenum=1;

}

elseif($pagenum>$last)

{

$pagenum=$last;

}

//這設(shè)置了在我們的查詢中顯示的范圍116

$max=&##39;limit'$pagenum-1)*$page U rows。''$page U rows;

03養(yǎng)腎的小知識

133 of 04 134

查詢和結(jié)果

此代碼從早期重新運行查詢,只需稍作更改。這次它包含$max變量以將查詢結(jié)果限制為屬于當前頁面的結(jié)果。查詢后,您使用任何您希望的格式將結(jié)果顯示為正常。

顯示結(jié)果時,將顯示當前頁面以及存在的頁面總數(shù)。這不是必要的,但知道這是很好的信息。

接下來,代碼生成導航。假設(shè)是,如果您位于第一頁,則不需要鏈接到第一頁。由于這是第一個結(jié)果,因此不存在上一頁。所以代碼檢查(如果($pagenum==1))查看訪問者是否在第一頁。如果是這樣,那么什么都不會發(fā)生。如果沒有,那么PHP?SELF和頁碼將生成指向第一頁和上一頁的鏈接。

你做幾乎相同的事情來生成另一側(cè)的鏈接。但是,這次你要檢查確保你在上一頁上是't。如果是,那么您不需要鏈接到最后一頁,也不存在下一頁。

04

of 04

分頁結(jié)果代碼

//這是你的查詢,同樣的。。。**的區(qū)別是我們在其中添加了$max

$data UP=mysql#query("從topsites$max&##34;)或die(mysql#error());

//這是顯示查詢結(jié)果的地方

而($info=mysql?fetch?array($data?p))

{

打印$info['名稱'];

echo"
";

}

echo"

";

//這向用戶顯示他們所在的頁面以及頁面總數(shù)

echo"--Page$pagenum of$last-

";

//首先,我們檢查我們是否在第一頁。如果我們是,那么我們不需要'需要鏈接到前一頁或第一頁,所以我們什么都不做。如果我們不是't,那么我們將生成指向第一頁和前一頁的鏈接。

如果($pagenum==1)

{

}

其他

{

echo"

<-First";

回聲"";

$上一個=$pagenum-1;

echo"<-上一個<&a>";

}

//只是一個墊片

echo"-----";

//這同樣上面,只檢查我們是否在最后一頁,然后生成下一個和最后一個鏈接

如果($pagenum==$last)

{

}

其他{

$next=$pagenum+1;

echo"下一步><&a>";

回聲"";

echo"last->><&a>";

}

?>