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注入实例
Oct 09 PHP
用PHP查询域名状态whois的类
Nov 25 PHP
vs中通过剪切板循环来循环粘贴不同内容
Apr 30 PHP
常用的PHP数据库操作方法(MYSQL版)
Jun 08 PHP
php实现查看邮件是否已被阅读的方法
Dec 03 PHP
PHP基于imap获取邮件实例
Nov 11 PHP
YiiFramework入门知识点总结(图文教程)
Dec 28 PHP
php+redis实现多台服务器内网存储session并读取示例
Jan 12 PHP
PHP实现生成推广海报的方法详解
Mar 14 PHP
ThinkPHP框架实现的邮箱激活功能示例
Jun 15 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
Apr 14 PHP
php自动加载代码实例详解
Feb 26 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无限级分类方法及代码
2013/06/21 PHP
php+ajax无刷新分页实例详解
2015/12/07 PHP
PHP设计模式之策略模式原理与用法实例分析
2019/04/04 PHP
只需一行代码,轻松实现一个在线编辑器
2013/11/12 Javascript
ExtJS4给Combobox设置列表中的默认值示例
2014/05/02 Javascript
如何在node的express中使用socket.io
2014/12/15 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
2015/08/21 Javascript
Bootstrap开发实战之响应式轮播图
2016/06/02 Javascript
让html元素随浏览器的大小自适应垂直居中的实现方法
2016/10/12 Javascript
JS判断输入的字符串是否是数字的方法(正则表达式)
2016/11/29 Javascript
jQuery日程管理控件glDatePicker用法详解
2017/03/29 jQuery
bootstrap3 dialog 更强大、更灵活的模态框
2017/04/20 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
2017/05/18 Javascript
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
2019/03/29 Javascript
小程序获取当前位置加搜索附近热门小区及商区的方法
2019/04/08 Javascript
如何HttpServletRequest文件对象并储存
2020/08/14 Javascript
vue项目中使用rem,在入口文件添加内容操作
2020/11/11 Javascript
[56:14]Fnatic vs OG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[01:00:22]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第三场 1月10日
2021/03/11 DOTA
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
HTML5 自动聚焦(autofocus)属性使用介绍
2013/08/07 HTML / CSS
HTML5 HTMLCollection和NodeList的区别详解
2020/04/29 HTML / CSS
洲际酒店集团大中华区:IHG中国
2016/08/17 全球购物
Speedo速比涛中国官方网站:全球领先泳装运动品牌
2018/04/24 全球购物
Exception类的常用方法
2012/06/16 面试题
2014年办公室人员工作总结
2014/12/09 职场文书
大四学生个人总结
2015/02/15 职场文书
垂直极限观后感
2015/06/08 职场文书
大学生暑假实习总结
2015/07/13 职场文书
简短的36句中秋节祝福信息语句
2019/09/09 职场文书
Mysql服务添加 iptables防火墙策略的方案
2021/04/29 MySQL
使用php的mail()函数实现发送邮件功能
2021/06/03 PHP
基于Redis zSet实现滑动窗口对短信进行防刷限流的问题
2022/02/12 Redis