Php 如何使用数据表分页?
现在我调用整个数据,并使用数据表在视图中表示它。但是,如果有大量数据,渲染速度会很慢。我们应该做些什么来改进 在这个数据表代码中Php 如何使用数据表分页?,php,jquery,ajax,datatable,mariadb,Php,Jquery,Ajax,Datatable,Mariadb,现在我调用整个数据,并使用数据表在视图中表示它。但是,如果有大量数据,渲染速度会很慢。我们应该做些什么来改进 在这个数据表代码中 <script> $(function() { 'use strict'; $('#datatable1').DataTable({ responsive: true, ordering: false, language: {
<script>
$(function() {
'use strict';
$('#datatable1').DataTable({
responsive: true,
ordering: false,
language: {
searchPlaceholder: 'Search...',
sSearch: '',
lengthMenu: '_MENU_ items/page',
}
});
</script>
在此sql代码和表视图代码中
$sql = "SELECT * FROM hospital_payment_data where store_mbrno = '1' ";
if($result = mysqli_query($link, $sql)){
if(mysqli_num_rows($result) > 0){
// echo "<table id='datatable1' class='table display responsive nowrap' style='width: 100%;'>";
echo "<table id='datatable1' class = table style = 'width: 100%; font-size:12.3px; font-family:nanum; background-color:#01b3ed;'>";
echo "<thead >";
echo "<tr>";
echo "<th>No</th>";
echo "<th>chart_num</th>";
echo "</tr>";
echo "</thead>";
echo "<tbody>";
while($row = mysqli_fetch_array($result)){
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['chart_num'] . "</td>";
}
echo "</tbody>";
echo "</table>";
// Free result set
mysqli_free_result($result);
}
我应该如何使用datatable、php和mariadb进行分页?将结果限制为:
$sql = "SELECT * FROM hospital_payment_data
WHERE store_mbrno = '1'
LIMIT 100 OFFSET ".$offset_var;
这样,您将返回每页100个结果。变量$offset_var可以像GET变量一样在SQL查询之前通过URL传递:
$offset_var = $_GET['offset']??0;
然后,您可以将其用于分页的超链接
当然,您不应该忘记清理这个变量。比如:
$offset_var = (int)$offset_var;
if($offset_var<0) $offset_var=0;
另外,考虑一下最终的情况,当有人点击url中有一个大偏移量的页面时,请确保这个空页面仍然呈现出漂亮的效果。它滞后了,是吗?是的,因为你正在加载所有内容,想象一下如果你有一百万行。只需加载前10或15行。使用服务器端数据表@Kevin是否有任何方法在客户端处理它?没有其他方法,只需遵循文档即可。这是一个处理这一切的类,我应该如何应用它?