本文操作环境:windows7系统、php7.1版、DELL G3电脑
php 如何实现两张不同的表分页?
PHP 跨表分页
当两表数据相对均衡的情况下比较适用
$min_b || empty($b_f)) # b组数据小 重新查询a组 { # 查出偏移量 # 第二次查询 second $a_s = getRangeInfo($a, $min, $max_a); # second 第二次查找 # 求出新查出的数据与最开始查出a数组相差个数 $offset = count($a_s)-$a_f_len; } else { # a组数据小 重新查询b组 # 查出偏移量 $b_s = getRangeInfo($b, $min, $max_b); # 求出新查出的数据与最开始查出a数组相差个数 $offset = count($b_s)-$b_f_len; } } $now_position = $show = (int)($averge*2-$offset); $start_position = $page*$page_size; $end_position = ($page+1)*$page_size-1; // 假如一次查询某数组为空,查询的第二组数据未能涵盖所需全部数据,故重新查询 $a_s = getlimit($a, $min, $start_position-$now_position+$page_size); $b_s = getlimit($b, $min, $start_position-$now_position+$page_size); $total_arr = array_merge($a_s, $b_s) ; sort( $total_arr); # 升序排列 $res = []; foreach ($total_arr as $k=>$v) { if ($now_position > $end_position) { break; } if ($now_position < $start_position){ $now_position = $now_position+1; continue; } $now_position = $now_position+1; $res[] = $v; } // 思路如下: $min_str = $min_a > $min_b ? ' 最小数在b, 重新获取a数据'.json_encode($a_s):'最小数在a, 重新获取b数据'.json_encode($b_s); print_r('数组$a:'.json_encode($a)); echo '
'; print_r('数组$b:'.json_encode($b)); echo '
'; print_r('平均数floor is '.$averge.', $a 最小值是 '.$min_a.',$b 最小值是 '.$min_b.', 对比之后得出最小值是'.$min.','.$min_str. '此时偏移量'.$offset.', 最小数'.$min.'处于位置'.$show.', 我需要'.$start_position.'到'.$end_position.'的数据, 查出所需数据为'.json_encode($total_arr).', 结果为'.json_encode($res)); return $res;}// 按值范围获取function getRangeInfo ($array, $start_value, $end_value){ sort($array); $res = []; foreach ($array as $k => $v) { if ($v >= $start_value && $v <= $end_value){ $res[] = $v; } } return $res;}// 按起始位置个数获取function getlimit ($array, $start_value, $num){ sort($array); $res = []; foreach ($array as $k => $v) { if ($num<=0) { break; } if ($v >= $start_value){ $res[] = $v; $num --; } } return $res;}$b = [1];$a = [2,3,1,4,5,6,7,8,9,10,12,14];$page = 2; # 第一页$page_size = 5;$list = getPage($a, $b, $page, $page_size);$all = array_merge($a, $b);sort($all);echo '
';echo '
';echo '
';$start_position = $page*$page_size;$real = array_slice($all, $start_position, $page_size);print_r('合并总数据'.json_encode($all).',一页'.$page_size.'条, 第'.(string)($page+1).'页数据为:'.json_encode($real));
当前文章:php如何实现两张不同的表分页
新闻来源:http://www.csdahua.cn/qtweb/news16/382316.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网