codeigniter实现get分页的方法


Posted in PHP onJuly 10, 2015

本文实例讲述了codeigniter实现get分页的方法。分享给大家供大家参考。具体实现方法如下:

public function project_search(){
  $this->load->library('pagination');
  $this->load->model('depart_mdl');
  //获取搜索需要的信息
  $data = $this->get_project_data();
  $get_data = $this->input->get();
  $data = array_merge($data,$get_data);
  //get分页配置
  $name = $get_data['name'];
  $username = $get_data['username'];
  $budget = $get_data['budget'];
  $type = $get_data['type'];
  $posttime_start = $get_data['posttime_start'];
  $posttime_end = $get_data['posttime_end'];
  $purchase_type = $get_data['purchase_type'];
  $depart_code = $get_data['depart_code'];
  $project_status = $get_data['project_status'];
  $bidder_way = $get_data['bidder_way'];
  $suffix = "?name=$name&username=$username&budget=$budget&type=$type&posttime_start=$posttime_start&posttime_end=$posttime_end&purchase_type=$purchase_type&depart_code=$depart_code&project_status=$project_status&bidder_way=$bidder_way";
  $config['base_url'] = site_url('project/project_search').$suffix;
  $config['total_rows'] = $this->db->count_all($this->db->dbprefix('project'));
  $config['per_page'] = 10;
  $config['page_query_string'] = TRUE;
  //偏移量
  $config['query_string_segment'] = 'page';
  $config['uri_segment'] = 3;
  $this->pagination->initialize($config);
  $user = $this->user_mdl->get_user_by_salary_no($this->session->userdata('salary_no'));
  $this->db->from('ustc_project');
  $this->db->join('ustc_admins','ustc_admins.salary_no=ustc_project.salary_no');
  if($user->role!=1){
    $depart_code = explode(',',$user->grant_depart_code);
    $this->db->where_in('grant_depart_code',$depart_code);
    $this->db->or_where('ustc_project.salary_no =',$this->session->userdata('salary_no'));
  }
  if($name != ''){
    $this->db->like('name',$name);
  }
  if($username != ''){
    $this->db->like('username',$get_data['username']);
  }
  if($budget != ''){
    $this->db->like('budget',$get_data['budget']);
  }
  if($type != ''){
    $this->db->where('type',$get_data['type']);
  }
  if($depart_code != ''){
    $this->db->where('depart_code',$get_data['depart_code']);
  }
  if($purchase_type != ''){
    $this->db->where('purchase_type',$get_data['purchase_type']);
  }
  if($project_status != ''){
    $this->db->where('project_status',$get_data['project_status']);
  }
  if($bidder_way != ''){
    $this->db->where('bidder_way',$get_data['bidder_way']);
  }
  //时间
  if($posttime_start != ''){
    $this->db->where('posttime > ',strtotime($get_data['posttime_start']));
  }
  if($posttime_end != ''){
    $this->db->where('posttime < ',strtotime($get_data['posttime_end']));
  }
  if(isset($get_data['page'])){
    $page_from = $get_data['page'];
  }else{
    $page_from = 0;
  }
  $this->db->order_by('posttime','desc');
  $projects = $this->db->limit($config['per_page'],$page_from)->get()->result_array();  
  //处理
  for($i=0;$i<count($projects);$i++){
    $projects[$i]['type'] = $this->manage_info_mdl->get_value_by_id($projects[$i]['type'])->value;
    $projects[$i]['purchase_type'] = $this->manage_info_mdl->get_value_by_id($projects[$i]['purchase_type'])->value;
    $projects[$i]['depart'] = $this->depart_mdl->get_depart_by_code($projects[$i]['depart_code'])->name;
  }
  $data['projects'] = $projects;
  //获取当前用户的角色
  $data['user_role'] = $this->user_mdl->get_user_by_salary_no($this->session->userdata('salary_no'))->role;  
  $this->_template('project_search',$data);
}

希望本文所述对大家基于codeigniter的php程序设计有所帮助。

PHP 相关文章推荐
一个可查询所有表的“通用”查询分页类
Oct 09 PHP
PHP 事件机制(2)
Mar 23 PHP
php中json_decode()和json_encode()的使用方法
Jun 04 PHP
php读取目录所有文件信息dir示例
Mar 18 PHP
php调用google接口生成二维码示例
Apr 28 PHP
php格式化电话号码的方法
Apr 24 PHP
php语言中使用json的技巧及json的实现代码详解
Oct 27 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
PHP时间戳和日期相互转换操作实例小结
Dec 18 PHP
php设计模式之装饰模式应用案例详解
Jun 17 PHP
laravel实现于语言包的完美切换方法
Sep 29 PHP
PHP使用QR Code生成二维码实例
Jul 07 PHP
PHP基于phpqrcode生成带LOGO图像的二维码实例
Jul 10 #PHP
php基于Snoopy解析网页html的方法
Jul 09 #PHP
php生成固定长度纯数字编码的方法
Jul 09 #PHP
php随机获取金山词霸每日一句的方法
Jul 09 #PHP
PHP实现的QQ空间g_tk加密算法
Jul 09 #PHP
PHP自毁程序(慎用)
Jul 09 #PHP
PHP模板解析类实例
Jul 09 #PHP
You might like
PHP如何透过ODBC来存取数据库
2006/10/09 PHP
生成sessionid和随机密码的例子
2006/10/09 PHP
Win2003服务器安全加固设置--进一步提高服务器安全性
2007/05/23 PHP
php实现的SESSION类
2014/12/02 PHP
利用PHP自动生成印有用户信息的名片
2016/08/01 PHP
精心挑选的15款优秀jQuery 本特效插件和教程
2012/08/06 Javascript
用JQuery在网页中实现分隔条功能的代码
2012/08/09 Javascript
ExtJS下书写动态生成的xml(兼容火狐)
2013/04/02 Javascript
js特效,页面下雪的小例子
2013/06/17 Javascript
javascript实现表单提交后,提交按钮不可用的方法
2015/04/18 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
2015/09/06 Javascript
JavaScript中Form表单技术汇总(推荐)
2016/06/26 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
2016/09/08 Javascript
AngularJS 与百度地图的结合实例
2016/10/20 Javascript
JS获取子、父、兄节点方法小结
2017/08/14 Javascript
JavaScript实现修改伪类样式
2017/11/27 Javascript
node.js通过axios实现网络请求的方法
2018/03/05 Javascript
jQuery+Datatables实现表格批量删除功能【推荐】
2018/10/24 jQuery
js回调函数原理与用法案例分析
2020/03/04 Javascript
Python的高阶函数用法实例分析
2019/04/11 Python
python使用tomorrow实现多线程的例子
2019/07/20 Python
Django对接支付宝实现支付宝充值金币功能示例
2019/12/17 Python
python读取tif图片时保留其16bit的编码格式实例
2020/01/13 Python
Pycharm连接远程服务器过程图解
2020/04/30 Python
浅谈matplotlib默认字体设置探索
2021/02/03 Python
HTML5实现晶莹剔透的雨滴特效
2014/05/14 HTML / CSS
英国著名的化妆品折扣网站:Allbeauty.com
2016/07/21 全球购物
Eclipse面试题
2014/03/22 面试题
传统软件工程与面向对象的软件工程有什么区别
2012/05/31 面试题
搬家公司的创业计划书
2014/01/01 职场文书
个人工作主要事迹
2014/05/08 职场文书
公务员诚信承诺书
2014/05/26 职场文书
后天观后感
2015/06/08 职场文书
2015选调生工作总结
2015/07/24 职场文书
go语言中GOPATH GOROOT的作用和设置方式
2021/05/05 Golang
Win11如何默认打开软件界面最大化?Win11默认打开软件界面最大化的方法
2022/07/15 数码科技