我有一个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 :(得分: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
。
答案 1 :(得分:0)
有一种快速的方法可以在html表中获取所有结果,然后应用jquery分页,如:
$(document).ready(function() {
$('#mytable').DataTable();
} );
网站来源:https://www.datatables.net/examples/basic_init/zero_configuration.html
这样客户端将只在第一次等待,然后单击“下一步”直接是一个不必打扰服务器的客户端事件。
你的php和html也会很干净,有很多功能,比如: 排序,过滤,搜索......
jsfiddle中的