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 相关文章推荐
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
Apr 29 PHP
MyEclipse常用配置图文教程
Sep 11 PHP
PHP获取Exif缩略图的方法
Jul 13 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
Jul 31 PHP
php上传图片生成缩略图(GD库)
Jan 06 PHP
初识ThinkPHP控制器
Apr 07 PHP
PHP实现Google plus的好友拖拽分组效果
Oct 21 PHP
php实现xml转换数组的方法示例
Feb 03 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
Jul 04 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
Oct 18 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
Dec 24 PHP
php封装的pdo数据库操作工具类与用法示例
May 08 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
一条久听不愿放下的DIY森海MX500,三言两语话神奇
2021/03/02 无线电
Thinkphp关闭缓存的方法
2015/06/26 PHP
PHP实现的memcache环形队列类实例
2015/07/28 PHP
PHP PDOStatement::columnCount讲解
2019/01/30 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
2019/04/16 PHP
短信提示使用 特效
2007/01/19 Javascript
utf-8编码引起js输出中文乱码的解决办法
2010/06/23 Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
2012/12/19 Javascript
用jquery仿做发微博功能示例
2014/04/18 Javascript
AngularJS  ng-table插件设置排序
2016/09/21 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
2016/11/21 Javascript
Angular.js中angular-ui-router的简单实践
2017/07/18 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
2018/01/16 Javascript
angularjs实现table增加tr的方法
2018/02/27 Javascript
vue与vue-i18n结合实现后台数据的多语言切换方法
2018/03/08 Javascript
layer页面跳转,获取html子节点元素的值方法
2019/09/27 Javascript
js实现课堂随机点名系统
2019/11/21 Javascript
js仿360开机效果
2019/12/26 Javascript
微信小程序如何实现点击图片放大功能
2020/01/21 Javascript
vue调用本地摄像头实现拍照功能
2020/08/14 Javascript
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
[10:28]2018DOTA2国际邀请赛寻真——VGJ.S寻梦之路
2018/08/15 DOTA
Python实现统计文本文件字数的方法
2017/05/05 Python
分析python动态规划的递归、非递归实现
2018/03/04 Python
python 编写简单网页服务器的实例
2018/06/01 Python
python 实现一个图形界面的汇率计算器
2020/11/09 Python
武汉东之林科技有限公司机试
2013/09/17 面试题
物业管理专业个人的自我评价
2013/11/19 职场文书
年终总结会主持词
2014/03/25 职场文书
美术兴趣小组活动总结
2014/07/07 职场文书
学习退步检讨书
2014/09/28 职场文书
幼儿园国培研修日志
2015/11/13 职场文书
python如何做代码性能分析
2021/04/26 Python
python迷宫问题深度优先遍历实例
2021/06/20 Python
最新动漫情报:2022年7月新番定档超过30部, OVERLORD骨王第四季也在其中噢
2022/05/04 日漫
Golang并发工具Singleflight
2022/05/06 Golang