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 相关文章推荐
wordpress之wp-settings.php
Aug 17 PHP
使用PHP获取网络文件的实现代码
Jan 01 PHP
php 伪造本地文件包含漏洞的代码
Nov 03 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
Apr 02 PHP
ThinkPHP之import方法实例详解
Jun 20 PHP
PHP图片库imagemagick安装方法
Sep 23 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
Jan 30 PHP
PHP中你应该知道的require()文件包含的正确用法
Jun 12 PHP
php防止网站被攻击的应急代码
Oct 21 PHP
YII Framework框架教程之安全方案详解
Mar 14 PHP
php根据用户名和手机号查询是否存在手机号码
Feb 16 PHP
php实现session共享的实例方法
Sep 19 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
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
神盾加密解密教程(二)PHP 神盾解密
2014/06/08 PHP
php实现的mongodb操作类
2015/05/28 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
PHP生成推广海报的方法分享
2018/04/22 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
PHP变量的作用范围实例讲解
2020/12/22 PHP
JQuery的AJAX实现文件下载的小例子
2013/05/15 Javascript
js中apply方法的使用详细解析
2013/11/04 Javascript
JS计算网页停留时间代码
2014/04/28 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
2014/09/01 Javascript
node.js中的fs.read方法使用说明
2014/12/17 Javascript
基于javascript实现单选及多选的向右和向左移动实例
2015/07/25 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
2017/06/26 Javascript
Nodejs 和Session 原理及实战技巧小结
2017/08/25 NodeJs
Layui事件监听的实现(表单和数据表格)
2019/10/17 Javascript
Python实现简单http服务器
2018/04/12 Python
Python爬虫之正则表达式基本用法实例分析
2018/08/08 Python
python 利用百度API识别图片文字(多线程版)
2020/12/14 Python
基于HTML5的WebGL实现json和echarts图表展现在同一个界面
2017/10/26 HTML / CSS
澳大利亚首个在线预订旅游网站:Wotif
2017/07/19 全球购物
英国异国风情旅游网站:Travel Talk Tours(团体旅游、探险旅游、帆船假期)
2018/07/26 全球购物
法国房车租赁网站:Yescapa
2019/08/26 全球购物
ShellScript面试题一则-ShellScript编程
2014/03/05 面试题
传统软件工程与面向对象的软件工程有什么区别
2012/05/31 面试题
UNIX特点都有哪些
2016/04/05 面试题
护校行动方案
2014/05/31 职场文书
2014四风问题对照检查材料范文
2014/09/15 职场文书
入党函调证明材料
2014/12/24 职场文书
民事上诉状范文
2015/05/22 职场文书
思想工作总结范文
2015/08/12 职场文书
CSS的class与id常用的命名规则
2021/05/18 HTML / CSS
pytorch交叉熵损失函数的weight参数的使用
2021/05/24 Python
详解CSS玩转图片Base64编码
2021/05/25 HTML / CSS
MySql存储过程之逻辑判断和条件控制
2021/05/26 MySQL
idea以任意顺序debug多线程程序的具体用法
2021/08/30 Java/Android