接口分页的写法以及排除被拉黑的用户

//接收分页参数
$param = input('param.');
$where = [];
$user_id = get_cur_user_id();
//获取被拉黑用户的id
$black = Db::name('post_black')->where(['user_id'=>$user_id])->value('group_concat(black_id)');
if($black){
 $where['user_id'] =['not in',$black];
}
//总条数
$count = Db::name('post')
     ->where($where)
     ->field('id')
     ->count();
//每页条数
$pageSize = $param['pageSize'];
 //总页数
$pagecount = ceil($count / $pageSize);
 //当前页数
$pageNum = $param['pageNum'];
if ($pageNum > $pagecount) {
    return json(['code' => -1, 'data' => '', 'msg' => '抱歉!没有那么多页']);
}
$offset = ($pageNum - 1) * $pageSize;
 //经度
$jd =input('longitude/d');
//纬度,第二个参数表示默认值
$wd =input('latitude/d');
//最新0 附近1 最热2
$type = input('param.type',0);
if($type == 0){
   $type_list = 'addtime';
   $type_sort = 'desc';
}else if($type ==1){
   $type_list = 'juli';
   $type_sort = 'asc';
}else{
   $type_list = 'gives';
   $type_sort = 'desc';
}

$user_type = DB::name("post p")
   ->join("user u", "p.user_id=u.id", 'left')
   ->join("post_type t", "p.type_id=t.id", 'left')->field("u.head_img,u.user_nickname,p.*,t.name,t.available,get_juli(longitude,latitude,'$jd','$wd') AS juli")
->where($where)
->order([$type_list=>$type_sort])
//第$offest页开始的$pagesize条数据
->limit($offset, $pageSize)
->select();


第二种
$start = input('start/d',0);
$page_size = input('page_size/d',8);
$offset = $start*$page_size;
->limit($offset,$page_size)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值