如何添加ajax分页?

时间:2015-01-04 00:48:10

标签: php ajax database pagination

我正在使用它 来自w3school的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);
?> 

1 个答案:

答案 0 :(得分:0)

我通常使用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>其中offset是起始结果(从0开始),count是您想要返回的结果数。

因此,假设您的页面大小为50,并且位于您想要的第5页:

LIMIT 100,25

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