2016-09-14 108 views
1

我有一个DataTable显示数据库中的数据。它使用while循环来获取数据并在表中显示。但是我现在遇到的问题是,数据库中的所有数据行都出现在没有分页的表格中。因此可以说,如果我在数据库中有100行数据,则全部出现在一个长表中,并且我将不得不继续向下滚动以查看数据库中的所有数据。这意味着每页显示的记录和分页不起作用。搜索和排序方面也不起作用。下面是我的代码和数据表的截图。请帮助我,因为我堆积如山。DataTables分页和搜索不起作用

<table class="table table-striped table-bordered table-hover" id="dataTables-example"> 
           <thead> 
            <tr> 
             <th>Event Date</th> 
             <th>number</th> 
             <th>Agent number</th> 
             <th>Agent Name</th> 
             <th>Remarks</th> 
            </tr> 
           </thead> 
           <tbody> 
           <?php 

           $result = mysqli_query($conn,"SELECT * FROM roaming"); 
           $count = mysqli_num_rows($result); 

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

           ?> 


            <tr class=""> 
             <td><?php echo $row['eventDate'];?></td> 
             <td><?php echo $row['number'];?></td> 
             <td><?php echo $row['agent_number'];?></td> 
             <td class="center"><?php echo $row['service'];?></td> 
             <td class="center"><?php echo $row['vpmn'];?></td> 
            </tr> 
            <?php } //end of while loop ?> 
           </tbody> 
          </table> 

数据表截图enter image description here

+0

我没有看到你的JavaScript的datatables正在初始化。此外,你的代码会为每个结果输出一个新的'',这不一定是可取的。 – Blake

+0

谢谢@布莱克。在while循环之前放置''为了不为每个结果输出新的解决了我的问题。 –

+0

你可能只是关闭了这个问题,因为这只是一个格式错误,并没有太大的未来价值。 – Blake

回答

1

你的SQL查询 “SELECT * FROM漫游” 返回所有行,而不仅仅是他们的第10位,例如。

得到公正的前十行,您的SQL查询应该是这样的:

"SELECT * FROM roaming LIMIT 0,10" 

要获得10〜20行(下次页)使用这样的查询:

"SELECT * FROM roaming LIMIT 10,10" 
+0

Datatables是一个JavaScript库。如果他设置了服务器端处理,那么他的建议可能是适用的,他并没有提到。 – Blake