php怎么实现两张不同的表分页
这篇文章将为大家详细讲解有关php怎么实现两张不同的表分页,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
创新互联建站是一家网站设计公司,集创意、互联网应用、软件技术为一体的创意网站建设服务商,主营产品:响应式网站开发、成都品牌网站建设、全网整合营销推广。我们专注企业品牌在网站中的整体树立,网络互动的体验,以及在手机等移动端的优质呈现。做网站、成都网站设计、移动互联产品、网络运营、VI设计、云产品.运维为核心业务。为用户提供一站式解决方案,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏析悦目的作品,网站的价值服务。
php实现两张不同表分页的方法:1、创建一个PHP示例文件;2、通过“function getPage($a, $b, $page, $page_size){...}”实现跨表分页即可。
本文操作环境:windows7系统、PHP7.1版、DELL G3电脑
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怎么实现两张不同的表分页”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
网站标题:php怎么实现两张不同的表分页
网站路径:http://www.jxjierui.cn/article/gjodgd.html


咨询
建站咨询
