2015-10-06 83 views
2

我有一個mySQL表,它存儲了嵌套到無限級別的類別和子類別。表結構是:無限嵌套分頁

cat_id, parent_id, cat_name 
    1  0  Ingredients 
    2  1  Veg 
    3  1  Non-veg 
    4  3  Egg 
    5  2  Potatoes 

我想顯示在一個PHP頁面這些項目以樹視圖的完整列表。因此,首先會顯示父母ID爲「0」的項目,如果他們有子項目,子元素將顯示遞歸到無限級別。輸出將如下所示,但以表格格式:

id   title 
1   Ingredients 
    2   Veg 
    5   Potatoes 
    3   Non-veg 
    4   Egg 

我能夠在多個查詢的幫助下實現此目的。首先,我得到所有記錄父母id = 0,然後我遍歷所有的項目和循環內我檢查是否有子記錄存在顯示它們(遞歸)。

但現在我需要添加分頁並且每頁只顯示10條記錄。

有沒有辦法實現分頁和每頁動態顯示10條記錄,包括兒童和兒童記錄? 我將如何計算總頁數並獲取記錄?我將在後面的這些類型的表中添加過濾器。

回答

0

你的意思是,只有10條記錄的根項,有cat_id爲0的記錄?對於你的第一個查詢,只要做SELECT * FROM cats WHERE parent_id = 0 LIMIT 10。然後您的後續查詢將只會找到前10個的後代。

對於總頁數(10個),請執行SELECT COUNT(*)/10 AS number_of_pages FROM cats WHERE parent_id = 0

0

有一個快速的方式來獲得在HTML表中的所有結果,然後應用jquery的分頁,如:

$(document).ready(function() { 
    $('#mytable').DataTable(); 
}); 

網站來源:https://www.datatables.net/examples/basic_init/zero_configuration.html

通過這個客戶端將只等待在第一時間,在此之後,單擊下一步直接是不需要打擾服務器的客戶端事件。

你也PHP和HTML會乾淨很多類似的功能: 排序,過濾,搜索,...

演示中的jsfiddle:http://jsfiddle.net/0wvtpzc8/