2015-01-04 102 views
0

我正在使用這個 PHP Ajax的例子來自w3schools.This工作正常,但它不是一個有效的解決方案,當記錄列表將巨大。所以我想添加分頁處理大記錄。如何添加分頁(Ajax分頁我可以避免頁面重新加載)?如何添加ajax分頁?

這裏是我的代碼:

<?php 
$q = intval($_GET['q']); 

$con = mysqli_connect('localhost','peter','abc123','my_db'); 
if (!$con) { 
    die('Could not connect: ' . mysqli_error($con)); 
} 

mysqli_select_db($con,"ajax_demo"); 
$sql="SELECT * FROM user WHERE type_no = '".$q."'"; 
$result = mysqli_query($con,$sql); 

echo "<table border='1'> 
<tr> 
<th>Firstname</th> 
<th>Lastname</th> 
<th>Age</th> 
<th>Hometown</th> 
<th>Job</th> 
</tr>"; 

while($row = mysqli_fetch_array($result)) { 
    echo "<tr>"; 
    echo "<td>" . $row['FirstName'] . "</td>"; 
    echo "<td>" . $row['LastName'] . "</td>"; 
    echo "<td>" . $row['Age'] . "</td>"; 
    echo "<td>" . $row['Hometown'] . "</td>"; 
    echo "<td>" . $row['Job'] . "</td>"; 
    echo "</tr>"; 
} 
echo "</table>"; 

mysqli_close($con); 
?> 
+1

使用'LIMIT'來添加一個起始行和一個長度,所以'LIMIT 10,10'會給你記錄10到19.你需要通過一個查詢字符串值來傳遞一個頁碼或一個起始值。這個網站上有大量的例子(見'分頁'標籤)和網絡上的其他地方。 – halfer

回答

0

我通常做的是使用LIMIT功能在MySQL。當我看看你的例子時,我會假設sql語句只會返回一個結果。

讓我們假設你有一個表稱爲user擁有衆多用戶,如果你有這樣的查詢:

SELECT * FROM user 

你會得到所有的用戶早在一個查詢。這在大多數用途中不實用。我認爲最優雅的解決方案是LIMIT功能。

例如,如果我想看看在一系列的結果:

SELECT * FROM user LIMIT 0,50 #return first 50 results - records 0 to 49 

SELECT * FROM user LIMIT 50,50 #return the next 50 results - records 50 to 99 

LIMIT語法如下LIMIT <offset>,<count>凡偏移量是起始的結果(從0開始),並計數爲你想回的結果數。

所以,讓我們假設你有50頁大小,並且是第5頁上,你會想:

LIMIT 100,25 

在數據庫級別處理,這是最簡單,最快捷的方法。

+0

不,它會根據where子句返回結果。所以列表可能很大。但是我更新了我的帖子和查詢。 – user2252617

+0

即使你的代碼改變,你仍然使用「LIMIT」 – jlonganecker