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 已经成熟
Dec 04 PHP
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
Mar 28 PHP
sql注入与转义的php函数代码
Jun 17 PHP
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
Jun 09 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
Oct 21 PHP
php获取用户浏览器版本的方法
Jan 03 PHP
windows8.1下Apache+Php+MySQL配置步骤
Oct 30 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
Apr 22 PHP
比较完整的微信开发php代码
Aug 02 PHP
php使用glob函数遍历文件和目录详解
Sep 23 PHP
Laravel 连接(Join)示例
Oct 16 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 调试环境(IIS+PHP+MYSQL)
2007/01/10 PHP
深入apache配置文件httpd.conf的部分参数说明
2013/06/28 PHP
php实现的Captcha验证码类实例
2014/09/22 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
js 面向对象的技术创建高级 Web 应用程序
2010/02/25 Javascript
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2013/10/24 Javascript
javascript按位非运算符的使用方法
2013/11/14 Javascript
Ajax同步与异步传输的示例代码
2013/11/21 Javascript
js实现选中复选框文字变色的方法
2015/08/14 Javascript
jQuery+Ajax实现无刷新分页
2015/10/30 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
解析JavaScript数组方法reduce
2016/12/12 Javascript
如何快速上手Vuex
2017/02/14 Javascript
JavaScript实现省市联动过程中bug的解决方法
2017/12/04 Javascript
vue.js 实现点击展开收起动画效果
2018/07/07 Javascript
区别JavaScript函数声明与变量声明
2018/09/12 Javascript
浅谈js闭包理解
2019/04/01 Javascript
vue组件间的参数传递实例详解
2019/04/26 Javascript
Vue 处理表单input单行文本框的实例代码
2019/05/09 Javascript
微信小程序环境下将文件上传到OSS的方法步骤
2019/05/31 Javascript
[40:01]OG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python实现可自定义大小的截屏功能
2018/01/20 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
2019/07/15 Python
python之array赋值技巧分享
2019/11/28 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
纯CSS实现右侧底部悬浮效果(悬浮QQ、微信、微博、邮箱等联系方式)
2015/04/24 HTML / CSS
英国经济型酒店品牌:Travelodge
2019/12/17 全球购物
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
歌唱比赛获奖感言
2014/01/21 职场文书
西北政法大学自主招生自荐信
2014/01/29 职场文书
行政专员的岗位职责
2014/03/10 职场文书
机关干部三严三实心得体会
2014/10/13 职场文书
试用期转正工作总结2015
2015/05/28 职场文书
2015年秋季开学典礼校长致辞
2015/07/16 职场文书
Nginx报错104:Connection reset by peer问题的解决及分析
2022/07/23 Servers