猿问

如何使用查询限制、偏移量和 jquery 数据表进行分页?

我使用数据表制作了一个页面。但是随着数据量的增加,加载数据的速度变慢了,所以我们尝试进行分页。但是我不知道如何在当前代码中修改它。应该如何修改?


在这个我的数据表脚本中


 $(function() {


          $('#datatable1').DataTable({

            responsive: true,

            order: [[ 1, "desc" ], [ 2, "desc"]],

            language: {



              searchPlaceholder: 'Search...',

              sSearch: '',

              lengthMenu: '_MENU_ items/page',

            },

            dom : 'Bfrtip',


            buttons: [

                'copy', 'excel', 'print'

            ]

          });

        });

在这个sql查询中


    $sql = "SELECT id,  DATE_FORMAT(tranDate,'%Y-%m-%d') as tranDate, tranTime, date, cmd, paymethod, amount, orgRefNo, orgTranDate FROM noti_card_data  WHERE  mbrNO = '1'";


in this table view code



    if($result = mysqli_query($link, $sql)){               


            if(mysqli_num_rows($result) > 0){


                echo "<table id='datatable1' class = table style = 'width: 100%; font-size:12.5px; font-family:nanum; background-color:transparent;'>";

                echo "<thead >";

                echo "<tr>";

                echo "<th>No</th>";

                echo "<th>amount</th>";

                echo "</tr>";

                echo "</thead>";


                echo "<tbody>";

            while($row = mysqli_fetch_array($result)){

                echo "<tr>";

                echo "<td>" . $row['id'] . "</td>";

                echo "<td>" . number_format($row['amount']) . "</td>";

                echo "</tr>";

            }

                echo "</tbody>";                            

                echo "</table>";

                // Free result set

                mysqli_free_result($result);                                  

            } 


            else{


            }

        }     


    else{

    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);

    } 


    // Close connection

    mysqli_close($link);   

在这个视图中

如何使用分页



慕少森
浏览 81回答 1
1回答

慕桂英4014372

您可以通过获取分页所在的当前页面所需的数据集来实现此目的,而不是获取查询返回的所有数据集。例如:想象一下你在分页的第 1 页。如果你每页只需要 100 个项目,那么你可以将查询检索的项目限制为 100 个,这样可以更快地检索数据,因为而不是获取每个数据从查询中设置您刚刚获得 100 以显示在当前页面中。您必须在网址中传递页码。想象一下您的网址就像下面提到的那样。http://localhost/pagination.php?page=2&nbsp;// getting the current page to set the starting point to get data.&nbsp; &nbsp; if (isset($_GET['page'])) {&nbsp; &nbsp; &nbsp; $curPage = $_GET['page'];&nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; $curPage = 1;&nbsp; &nbsp; }&nbsp; &nbsp; //number of items you need per a page&nbsp; &nbsp; &nbsp;$labels_per_page = 100;&nbsp; &nbsp; &nbsp;//setting the starting point according to the page no.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;if($curPage>1){&nbsp; &nbsp; &nbsp;$start = ($curPage-1)*$labels_per_page;&nbsp; }else{&nbsp; &nbsp; &nbsp;$start = 0;&nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//limiting the query according to the starting point nd items per page$sql = "SELECT id,&nbsp; DATE_FORMAT(tranDate,'%Y-%m-%d') as tranDate, tranTime, date, cmd, paymethod, amount, orgRefNo, orgTranDate FROM noti_card_data&nbsp; WHERE&nbsp; mbrNO = '1' LIMIT ".$start .','.$labels_per_page ;结果视图我要查看
随时随地看视频慕课网APP
我要回答