我正在使用它 来自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);
?>
答案 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
在数据库级别处理此问题是最简单,最快捷的方法。