平时分页大多用SQL 语句的 ‘LIMIT’ 就行。如果数据库里的数据涉及到了 子父嵌套关系 ,为了保证数据子父关系的完整,我改用 数组分割进行分页原理如下:<?php$page_size = 1; //分布大小$page = 1; //当前页
......
$list = array(
0=>array( 'id'=>1, 'name'=>'aa', 'pid'=>0 ),
1=>array( 'id'=>2 , 'name'=>'bb', 'pid'=>1 )
) ;//此数组是从数据库查询返回的数据集
复制代码
$tree=list_to_tree($list)$record_count($aa); //数据总数$page_count = ceil($record_count / $page_size); //页数
$aa = array_slice($tree, ($page-1)*$page_size, $page_size); //这里就是要显示的分页数组
?>意思是从数据库取出数据然后通过一个函数 list_to_tree($list),来生成子父嵌套数组tree结构如下
$tree = array(
0=>array(
'id'=>1,
'name'=>'aa',
'son'=>array(
0=array(
'id'=>2,
'name'=>'bbb',
'pid'=>1
)
)
)
)
那么每一次翻页都会从数据库读取符合条件的数据集$list,想问一下如果$list 数据非常多的话,比如上万条,那就是对这几万个数组进行分割?这种效率肯定不行
如 http://www.verycd.com/entries/530138/,这种评论分页他们是如何做这种查询优化的?
......
$list = array(
0=>array( 'id'=>1, 'name'=>'aa', 'pid'=>0 ),
1=>array( 'id'=>2 , 'name'=>'bb', 'pid'=>1 )
) ;//此数组是从数据库查询返回的数据集
复制代码
$tree=list_to_tree($list)$record_count($aa); //数据总数$page_count = ceil($record_count / $page_size); //页数
$aa = array_slice($tree, ($page-1)*$page_size, $page_size); //这里就是要显示的分页数组
?>意思是从数据库取出数据然后通过一个函数 list_to_tree($list),来生成子父嵌套数组tree结构如下
$tree = array(
0=>array(
'id'=>1,
'name'=>'aa',
'son'=>array(
0=array(
'id'=>2,
'name'=>'bbb',
'pid'=>1
)
)
)
)
那么每一次翻页都会从数据库读取符合条件的数据集$list,想问一下如果$list 数据非常多的话,比如上万条,那就是对这几万个数组进行分割?这种效率肯定不行
如 http://www.verycd.com/entries/530138/,这种评论分页他们是如何做这种查询优化的?
http://www.php100.com/html/webkaifa/database/Mysql/2011/1227/9560.html