如何添加 ajax 分页


How to add ajax pagination?

我正在使用这个来自w3schools的PHP 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);
?> 

我通常做的是使用 mysql 中的LIMIT功能。当我查看您的示例时,我会假设 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

在数据库级别处理此问题是最简单、最快捷的方法。