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 数组遍历顺序理解
Sep 09 PHP
php smarty 二级分类代码和模版循环例子
Jun 01 PHP
php实现分页工具类分享
Jan 09 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
Oct 26 PHP
ThinkPHP中Session用法详解
Nov 29 PHP
使用新浪微博API的OAuth认证发布微博实例
Mar 27 PHP
PHP实现操作redis的封装类完整实例
Nov 14 PHP
PHP安装threads多线程扩展基础教程
Nov 17 PHP
php5.4传引用时报错问题分析
Jan 22 PHP
thinkphp3.2.3 分页代码分享
Jul 28 PHP
PHP简单判断手机设备的方法
Aug 23 PHP
PHP结合Vue实现滚动底部加载效果
Dec 17 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类
2006/10/09 PHP
服务器web工具 php环境下
2010/12/29 PHP
php列出mysql表所有行和列的方法
2015/03/13 PHP
PHP在线书签系统分享
2016/01/04 PHP
Zend Framework教程之Zend_Config_Xml用法分析
2016/03/23 PHP
PHP使用pear实现mail发送功能 windows环境下配置pear
2016/04/15 PHP
总结PHP删除字符串最后一个字符的三种方法
2016/08/30 PHP
在thinkphp5.0路径中实现去除index.php的方式
2019/10/16 PHP
JavaScript中的ubound函数使用实例
2014/11/04 Javascript
NodeJS学习笔记之Connect中间件应用实例
2015/01/27 NodeJs
jquery控制表单输入框显示默认值的方法
2015/05/22 Javascript
React.js入门实例教程之创建hello world 的5种方式
2016/05/11 Javascript
jquery选择器中的空格与大于号&gt;、加号+与波浪号~的区别介绍
2016/06/24 Javascript
JS中的进制转换以及作用
2016/06/26 Javascript
Form表单上传文件(type=&quot;file&quot;)的使用
2017/08/03 Javascript
[53:15]Mineski vs iG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
浅谈Python基础之I/O模型
2017/05/11 Python
对python使用http、https代理的实例讲解
2018/05/07 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
2019/01/08 Python
python中aioysql(异步操作MySQL)的方法
2019/04/11 Python
python微信撤回监测代码
2019/04/29 Python
Python使用LDAP做用户认证的方法
2019/06/20 Python
Python读取xlsx文件的实现方法
2019/07/04 Python
Python解析json时提示“string indices must be integers”问题解决方法
2019/07/31 Python
python内存管理机制原理详解
2019/08/12 Python
python opencv实现简易画图板
2020/08/27 Python
python 常见的反爬虫策略
2020/09/27 Python
基于HTML5 Canvas 实现商场监控实例详解
2017/11/20 HTML / CSS
HTML5 视频播放(video),JavaScript控制视频的实例代码
2018/10/08 HTML / CSS
什么是虚拟内存?虚拟内存有什么优势?
2016/02/09 面试题
《他得的红圈圈最多》教学反思
2014/04/24 职场文书
电工实训报告总结
2014/11/05 职场文书
大学四年个人总结
2015/03/03 职场文书
全国法制宣传日活动总结
2015/05/05 职场文书
nginx从安装到配置详细说明(安装,安全配置,防盗链,动静分离,配置 HTTPS,性能优化)
2022/02/12 Servers
升级 Win11 还是坚守 Win10?微软 Win11 新系统缺失功能大盘点
2022/04/05 数码科技