Thinkphp+同步条件查询+分页应用

来源:互联网 发布:淘宝怎么买图片空间 编辑:程序博客网 时间:2024/06/06 17:37

TP框架自带分页总是不能适用条件查询下的分页,没有条件查询时用的还行,一单有了条件以后,总是刷到没有条件的查询结果。

下面就是正确的处理结果。而且是同步查询,相对于异步来说便捷了很多。


1.首先在ThinkPHP/Libray/Think/Page1.class.php,这个文件是在原有的基础做了修改,已上传如我的资源库中


2.  在控制器调用page1类中的show(),代码示下:

public function index(){         $applicant=M('applicant'); $condition['state']='success'; if(I('applyid')){ $condition['applyid']=I('applyid'); $this->applyid=I('applyid'); } if(I('username')){ $condition['username']=I('username'); $this->username=I('username'); } if(I('phonenum')){ $condition['phonenum']=I('phonenum');  $this->phonenum=I('phonenum'); } if(I('saler')){ $condition['saler']=I('saler');   $this->saler=I('saler'); } if(I('groupname')){ //$condition['description']=array('like','%'.I('groupname').'%'); $where1['name']=array('like','%'.I('groupname').'%'); $group=M('group')->where($where1)->field('groupid')->select(); $groupnamearr=""; foreach($group as $v){ $groupnamearr[]=$v['groupid']; } $condition['groupid']=array('in',$groupnamearr);   $this->groupname=I('groupname',I('groupname')); }  if(I('dateend')&&I('datestart')){ $condition['applytime']=array(array('egt',strtotime(I('datestart'))),array('elt',strtotime(I('dateend'))+24*3600));   $this->dateend=I('dateend');    $this->datestart=I('datestart'); }else if(I('datestart')&&!I('dateend')){ $condition['applytime']=array('egt',strtotime(I('datestart'))); $this->datestart=I('datestart'); }else if(!I('datestart')&&I('dateend')){ $condition['applytime']=array('elt',strtotime(I('dateend'))); $this->datestart=I('datestart'); }         if(I('datement')){          $where11['repaymentdate']=date('Ymd',strtotime(I('datement'))); var_dump($where11); $where11['repaystatus']=array('in','1,3'); $repayment=M('repayplan')->where($where11)->field('applyid')->select(); if($repayment){ $arr=array(); foreach($repayment as $v){ $arr[]=$v['applyid']; }   $condition['zhuan_ok']=1;   $condition['zhuan_state']=array('neq',3);   $condition['applyid']=array('in',$arr);   }  $this->datement=I('datement');         }  if(I('state')){ $condition['status']=I('state');   $this->state=I('state'); } if(I('description')){ $condition['description']=I('description');   $this->description=I('description'); }            //var_dump($condition);         if(I('qinum')){ //var_dump(I('qinum'));   }if(I('paystate')!=""&&I('qinum')){if(I('qinum')==1&&I('paystate')==0){//第一期未还款$condition['paynum']=0;}else{$where2['term']=I('qinum'); $where2['repaystatus']=I('paystate');$repayplan=M('repayplan')->where($where2)->field('applyid')->select();$arr=""; foreach($repayplan as $v){ $arr[]=$v['applyid']; }             $condition['applyid']=array('in',$arr);}   $this->paystate=I('paystate');    $this->qinum=I('qinum'); }            if(I('from')==2){        $condition['from']=2;         $this->from=I('from');        }    if(I('from')==3){        $condition['zhuan_ok']=1;         $this->from=I('from');        }        if(I('from')==4){        $condition['from']=2;$condition['auditstatus']="SUCCESS";         $this->from=I('from');        }if(I('from')==5){        $condition['from']=2;$condition['auditstatus']="FAILURE";         $this->from=I('from');        }   //还款状态&&还款日期   if(I('paydate')&&I('paystate')!=""){       $paydate=date('Ymd',strtotime(I('paydate')));    $condit['repaymentdate']=$paydate; $condit['repaystatus']=I('paystate');  $repayplan=M('repayplan')->where($condit)->field('applyid')->select(); $arr=""; foreach($repayplan as $v){ $arr[]=$v['applyid']; }             $condition['applyid']=array('in',$arr); $this->paydate=I('paydate');  $this->paystate=I('paystate');   }                   $condition['_logic']='and'; if(session('groupid1')==0){$count =$applicant->where($condition)->count();    $Page = new \Think\Page1($count, 10);$applicant=$applicant->limit($Page -> firstRow . ',' . $Page -> listRows)->where('1=1')->where($condition)->order('applytime desc')->select();}else{$condition['groupid']=session('groupid1');$count =$applicant->where($condition)->count();    $Page = new \Think\Page1($count, 10);$applicant=M('applicant')->limit($Page -> firstRow . ',' . $Page -> listRows)->where('1=1')->order('applytime desc')->where($condition)->select();}$count =  count($applicant);foreach ($applicant as $key => &$value) {$group=M('group')->where('groupid="'.$value['groupid'].'"')->find();$partnershiptype=M('partnershiptype')->where('pshiptypeid="'.$value['pshiptypeid'].'"')->find();$value['groupname']=$partnershiptype['name'].'-'.$group['name'];if($value['firstpaydate']){$value['firstpaydate']=date('Y-m-d',$value['firstpaydate']);$value['firstpaystate']=1;//首期款支付成功}else{$map['applyid']=$value['applyid'];$map['term']=1;$repayplan=M('repayplan')->where($map)->find();if($repayplan){$value['firstpaydate']=date('Y-m-d',$repayplan['datelinux']);$value['firstpaystate']=1;//首期款支付成功}else{$value['firstpaydate']="首期款尚未支付";    $value['firstpaystate']=0;//首期款支付成功}}          $condition22['applyid']=$value['applyid'];  $condition22['repaystatus']=array('in','1,3');          $repayplans=M('repayplan')->where($condition22)->select();if(count($repayplans)==0){if($value['firstpaydate']=='首期款尚未支付'){$value['paynum']="尚未支付首期款";}else{$tt=1;$value['paynum']= $tt.'/'.$value['time'];}}else{$value['paynum']=count($repayplans).'/'.$value['time'];}//var_dump($applicant);if($applicant['addrid']==1){ $area_province=M('areas')->where(array('area_id'=>$value['province']))->find(); $area_city=M('areas')->where(array('area_id'=>$value['city']))->find();$area_country=M('areas')->where(array('area_id'=>$value['country']))->find();if($area_province['area_name']==$area_city['area_name']){  $value['address']=$area_city['area_name']."市".$area_country['area_name'].$value['detailaddr'];  }else{$value['address']=$area_province['area_name']."省".$area_city['area_name']."市".$area_country['area_name'].$value['detailaddr'];    }}else{ $area_province=M('addr')->where(array('area_id'=>$value['province']))->find(); $area_city=M('addr')->where(array('area_id'=>$value['city']))->find();$area_country=M('addr')->where(array('area_id'=>$value['country']))->find();$value['address']=$area_province['area_name'].$area_city['area_name'].$area_country['area_name'].$value['detailaddr'];   }        if($value['newapplyid']){        $new_applicant=M('applicant')->where(array('applyid'=>$value['newapplyid']))->find();if($new_applicant['auditstatus']=="SUCCESS"){$value['auditstatus_new']='SUCCESS';}else if($new_applicant['auditstatus']=="FAILURE"){$value['auditstatus_new']='FAILURE';}else{$value['auditstatus_new']='INIT';}        }}$show = $Page -> show();          $this->show=$show;$this->applicant=$applicant;$product=M('item_type')->select();$this->product=$product;$this->typeid=session('typeid');$this->groupid=session('groupid1');$this->display();}


1 0