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 相关文章推荐
用libtemplate实现静态网页生成
Oct 09 PHP
php获取url字符串截取路径的文件名和扩展名的函数
Jan 22 PHP
解析php类的注册与自动加载
Jul 05 PHP
php生成图片验证码-附五种验证码
Aug 19 PHP
64位windows系统下安装Memcache缓存
Dec 06 PHP
在php中设置session用memcache来存储的方法总结
Jan 14 PHP
PHP实现文件上传下载实例
Oct 18 PHP
2017年最新PHP经典面试题目汇总(上篇)
Mar 17 PHP
PHP简单获取随机数的常用方法小结
Jun 07 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
Apr 20 PHP
yii框架数据库关联查询操作示例
Oct 14 PHP
Centos7安装swoole扩展操作示例
Mar 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面向对象法则
2012/02/23 PHP
php获取YouTube视频信息的方法
2015/02/11 PHP
PHP获取HTTP body内容的方法
2018/12/31 PHP
[原创]js与自动伸缩图片 自动缩小图片的多浏览器兼容的方法总结
2007/03/12 Javascript
JavaScript 开发规范要求(图文并茂)
2010/06/11 Javascript
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
js将当前时间格式转换成时间搓(自写)
2013/09/26 Javascript
php+js实现倒计时功能
2014/06/02 Javascript
JS模式之简单的订阅者和发布者模式完整实例
2015/06/30 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
2015/08/13 Javascript
使用CSS+JavaScript或纯js实现半透明遮罩效果的实例分享
2016/05/09 Javascript
Bootstrap实现带动画过渡的弹出框
2016/08/09 Javascript
jQuery展示表格点击变色、全选、删除
2017/01/05 Javascript
vue.js打包之后可能会遇到的坑!
2018/06/03 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
2019/05/04 jQuery
Vue组件模板的几种书写形式(3种)
2020/02/19 Javascript
[02:23]2014DOTA2国际邀请赛中国战队回顾
2014/08/01 DOTA
在Python的Django框架中用流响应生成CSV文件的教程
2015/05/02 Python
Python和Perl绘制中国北京跑步地图的方法
2016/03/03 Python
从零开始学Python第八周:详解网络编程基础(socket)
2016/12/14 Python
不要用强制方法杀掉python线程
2017/02/26 Python
Python实现加载及解析properties配置文件的方法
2018/03/29 Python
Python利用Django如何写restful api接口详解
2018/06/08 Python
pyqt5实现登录界面的模板
2020/05/30 Python
python机器学习实现决策树
2019/11/11 Python
Mac中PyCharm配置Anaconda环境的方法
2020/03/04 Python
浅谈django框架集成swagger以及自定义参数问题
2020/07/07 Python
写给爸爸的道歉信
2014/01/15 职场文书
女娲补天教学反思
2014/02/05 职场文书
金融系毕业生自荐书
2014/07/08 职场文书
协会周年庆活动方案
2014/08/26 职场文书
维稳工作情况汇报
2014/10/27 职场文书
设立有限责任公司出资协议书
2014/11/01 职场文书
乔迁之喜答谢词
2015/01/05 职场文书
CSS link与@import的区别和用法解析
2023/05/07 HTML / CSS