2016-09-14 103 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