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 相关文章推荐
Zend 输出产生XML解析错误
Mar 03 PHP
php的list()的一步操作给一组变量进行赋值的使用
May 18 PHP
基于PHP对XML的操作详解
Jun 07 PHP
整理php防注入和XSS攻击通用过滤
Sep 13 PHP
PHP开发中AJAX技术的简单应用
Dec 11 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
Dec 25 PHP
PHP定义字符串的四种方式详解
Feb 06 PHP
PHP PDOStatement::execute讲解
Jan 31 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
Sep 30 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
Dec 02 PHP
laravel与thinkphp之间的区别与优缺点
Mar 02 PHP
详解thinkphp的Auth类认证
May 28 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读取msn上的用户信息类
2008/12/05 PHP
ThinkPHP Mobile使用方法简明教程
2014/06/18 PHP
PHP实现即时输出、实时输出内容方法
2015/05/27 PHP
实例讲解yii2.0在php命令行中运行的步骤
2015/12/01 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
2019/04/11 PHP
PHP程序守护进程化实现方法详解
2020/07/16 PHP
学习面向对象之面向对象的术语
2010/11/30 Javascript
jquery中dom操作和事件的实例学习-表单验证
2011/11/30 Javascript
JavaScript中两个感叹号的作用说明
2011/12/28 Javascript
AngularJS 日期格式化详解
2015/12/23 Javascript
基于JavaScript实现点击页面任何位置返回
2016/08/31 Javascript
深入理解JavaScript中的并行处理
2016/09/22 Javascript
js 事件的传播机制(实例讲解)
2017/07/20 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
2020/10/26 Javascript
Vue2.x和Vue3.x的双向绑定原理详解
2020/11/05 Javascript
pycharm运行和调试不显示结果的解决方法
2018/11/30 Python
Python+OpenCv制作证件图片生成器的操作方法
2019/08/21 Python
pytorch GAN生成对抗网络实例
2020/01/10 Python
如何基于Python + requests实现发送HTTP请求
2020/01/13 Python
解析Tensorflow之MNIST的使用
2020/06/30 Python
移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法
2015/03/27 HTML / CSS
DKNY品牌官网:纽约大都会时尚风格
2016/10/20 全球购物
波兰品牌鞋履在线商店:Eastend.pl
2020/01/11 全球购物
C语言编程练习
2012/04/02 面试题
建设幸福中国演讲稿
2014/09/11 职场文书
碧霞祠导游词
2015/02/09 职场文书
初中教务主任竞聘演讲稿(范文)
2019/08/20 职场文书
SQLServer2008提示评估期已过解决方案
2021/04/12 SQL Server
解决pytorch读取自制数据集出现过的问题
2021/05/31 Python
MongoDB数据库的安装步骤
2021/06/18 MongoDB
vue+echarts实现多条折线图
2022/03/21 Vue.js
Oracle用户管理及赋权
2022/04/24 Oracle