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
将数组写入txt文件 var_export
Apr 21 PHP
PHP初学者最感迷茫的问题小结
Mar 27 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
Oct 27 PHP
PHP的变量类型和作用域详解
Mar 12 PHP
destoon后台网站设置变成空白的解决方法
Jun 21 PHP
PHP中soap的用法实例
Oct 24 PHP
php简单实现多字节字符串翻转的方法
Mar 31 PHP
如何把php5.3版本升级到php5.4或者php5.5
Jul 31 PHP
PHP合并discuz用户脚本的方法
Aug 04 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
Nov 27 PHP
PHP中如何防止外部恶意提交调用ajax接口
Apr 11 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
Win2003+apache+PHP+SqlServer2008 配置生产环境
2014/07/29 PHP
ThinkPHP 在阿里云上的nginx.config配置实例详解
2017/10/11 PHP
Mac下快速搭建PHP开发环境步骤详解
2019/05/05 PHP
jquery 表单下所有元素的隐藏
2009/07/25 Javascript
JS+XML 省份和城市之间的联动实现代码
2009/10/14 Javascript
非常有用的40款jQuery 插件推荐(系列二)
2011/12/25 Javascript
javascript动态加载三
2012/08/22 Javascript
jQuery中delegate和on的用法与区别详细解析
2014/01/26 Javascript
JavaScript显示当前文档最后修改日期的方法
2015/03/19 Javascript
文字垂直滚动之javascript代码
2015/07/29 Javascript
浅析Ajax语法
2016/12/05 Javascript
详谈jQuery Ajax(load,post,get,ajax)的用法
2017/03/02 Javascript
JavaScript 中 JSON.parse 函数 和 JSON.stringify 函数
2018/12/05 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
2019/01/06 Javascript
微信小程序开发常见问题及解决方案
2019/07/11 Javascript
TensorFlow saver指定变量的存取
2018/03/10 Python
Python中logging.NullHandler 的使用教程
2018/11/29 Python
PyQt5 加载图片和文本文件的实例
2019/06/14 Python
python 求某条线上特定x值或y值的点坐标方法
2019/07/09 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
Python3常用内置方法代码实例
2019/11/18 Python
python爬取微博评论的实例讲解
2021/01/15 Python
详解pandas apply 并行处理的几种方法
2021/02/24 Python
详解CSS3的box-shadow属性制作边框阴影效果的方法
2016/05/10 HTML / CSS
HTML5轻松实现全屏视频背景的示例
2018/04/23 HTML / CSS
纽约市的奢华内衣目的地:Anya Lust
2019/08/02 全球购物
如何在发生故障的节点上重新安装 SQL Server
2013/03/14 面试题
大学生实习感言
2014/01/16 职场文书
函授生自我鉴定
2014/03/25 职场文书
优秀学生干部先进事迹材料
2014/05/26 职场文书
临床医学专业求职信
2014/08/08 职场文书
防灾减灾活动总结
2014/08/30 职场文书
法务专员岗位职责
2015/02/14 职场文书
子女赡养老人协议书
2016/03/23 职场文书
总结几个非常实用的Python库
2021/06/26 Python
spring boot中nativeQuery的用法
2021/07/26 Java/Android