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 相关文章推荐
56.com视频采集接口程序(PHP)
Sep 22 PHP
php生成随机字符串可指定纯数字、纯字母或者混合的
Apr 18 PHP
PHP函数strip_tags的一个bug浅析
May 22 PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
Jun 19 PHP
php CI框架插入一条或多条sql记录示例
Jul 29 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
Jul 07 PHP
PHP数据的提交与过滤基本操作实例详解
Nov 11 PHP
降低PHP Redis内存占用
Mar 23 PHP
php微信开发之音乐回复功能
Jun 14 PHP
PHP getName()函数讲解
Feb 03 PHP
PHP join()函数用法与实例讲解
Mar 11 PHP
ThinkPHP 5.x远程命令执行漏洞复现
Sep 23 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
用缓存实现静态页面的测试
2006/12/06 PHP
使用apache模块rewrite_module (转)
2007/02/14 PHP
php 模拟POST|GET操作实现代码
2010/07/20 PHP
探寻PHP脚本不报错的原因
2014/06/12 PHP
php实现删除空目录的方法
2015/03/16 PHP
php中使用gd库实现下载网页中所有图片
2015/05/12 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
2016/01/05 PHP
php微信公众平台开发(四)回复功能开发
2016/12/06 PHP
浅谈JavaScript中面向对象技术的模拟
2006/09/25 Javascript
日历查询的算法 如何计算某一天是星期几
2012/12/12 Javascript
jquery动态添加option示例
2013/12/30 Javascript
jQuery实现自动与手动切换的滚动新闻特效代码分享
2015/08/27 Javascript
js实现完美兼容各大浏览器的人民币大小写相互转换
2015/10/29 Javascript
jQuery ajax时间差导致的变量赋值问题分析
2016/01/22 Javascript
Bootstrap项目实战之首页内容介绍(全)
2016/04/25 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
JavaScript表单验证开发
2016/11/23 Javascript
JavaScript中递归实现的方法及其区别
2017/09/12 Javascript
深入学习js函数的隐式参数 arguments 和 this
2019/06/24 Javascript
Javascript 关于基本类型和引用类型的个人理解
2019/11/01 Javascript
vue配置多代理服务接口地址操作
2020/09/08 Javascript
用Python的Tornado框架结合memcached页面改善博客性能
2015/04/24 Python
怎样使用Python脚本日志功能
2016/08/14 Python
SQLite3中文编码 Python的实现
2017/01/11 Python
使用Python快速制作可视化报表的方法
2019/02/03 Python
简单了解Django项目应用创建过程
2020/07/06 Python
Python实现GIF图倒放
2020/07/16 Python
娇韵诗Clarins意大利官方网站:法国天然护肤品牌
2020/03/11 全球购物
《夜晚的实验》教学反思
2014/02/19 职场文书
俄语专业职业生涯规划
2014/02/26 职场文书
安全月活动总结
2014/05/05 职场文书
公司运动会策划方案
2014/05/25 职场文书
工地安全生产标语
2014/06/06 职场文书
导游词之包公祠
2019/11/25 职场文书
jQuery实现影院选座订座效果
2021/04/13 jQuery
java如何实现获取客户端ip地址的示例代码
2022/04/07 Java/Android