分表分页时查询用到的limit

33 篇文章 0 订阅
/**
 * 返回这次查询要用的分页 和 下次用的分页
 * $offset 第几个值开始
 * $limit 要取多少个
 * $pre_num 先查出当前表的个数
 * return array(array(第几个,要取的个数),array(下次要从几开始取取的,要取的个数))
 * 如果返回array(array( 第几个,要取的个数 ) ,array( 0 , 0 )); 表示这次取完就结束
 */
final public function offset_limit ( $offset , $limit , $pre_num )
{

    //echo  '<font color="red">'.$offset .' '.$limit.' '.$pre_num.'</font><br>';

    if ( $limit == 0 ) {
        return
            array(
                array( 0 , 0 ) ,
                array( 0 , 0 )
            );
    }

    if ( $offset === 0 ) {

        if ( $pre_num > $limit ) {
            return
                array(
                    array( 0 , $limit ) ,
                    array( 0 , 0 )
                );
        }

    }

    if ( $offset == $pre_num ) {
        return
            array(
                array( 0 , 0 ) ,
                array( 0 , $limit )
            );
    }


    if ( $pre_num < $offset ) {
        return
            array(
                array( 0 , 0 ) ,
                array( $offset - $pre_num , $limit )
            );
    }

    $sum = $offset + $limit;
    if ( $pre_num > $sum ) {
        return
            array(
                array( $offset , $limit ) ,
                array( 0 , 0 )
            );
    }


    if ( $pre_num > $offset ) {
        return
            array(
                array( $offset , $pre_num - $offset ) ,
                array( 0 , $limit - ( $pre_num - $offset ) )
            );
    }


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值