codeigniter实现get分页的方法

本文实例讲述了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程序设计有所帮助。

(0)

相关推荐

  • CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能

    本文以实例讲述了CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能,对于网站开发来说非常实用. 具体操作方法如下: 语言包文件如下: application\language\english\bm_lang.php application\language\zh-cn\bm_lang.php 注意: 1. "_lang.php"的前缀要一致: 2. 如果还有其他语言包,可创建文件application\language\***\bm_lang.php(**

  • CI框架简单邮件发送类实例

    本文实例讲述了CI框架简单邮件发送类.分享给大家供大家参考,具体如下: ci框架绝对是php初学中想要的东西,它能极大的缩短你的代码量! 下面看看我的发送邮件的简单演示: function email() { $this->load->library('email'); $config['protocol'] = 'smtp'; $config['smtp_host'] = 'smtp.163.com'; $config['smtp_user'] = 'jb51@163.com';//这里写上

  • CI框架支持$_GET的两种实现方法

    本文实例讲述了CI框架支持$_GET的两种实现方法.分享给大家供大家参考,具体如下: 首先ci框架在2.0以后就支持GET了,所以使用毫无压力! 1.使用get传递参数的方法: CI会自动将超过URI的两部分作为参数传给方法.可以去看手册:CI框架中文手册 如下:localhost/index.php/jb51/func/a/b 那么控制器中的方法php代码如下: <?php class Jb51 extends CI_Controller { public function func($x,

  • CodeIgniter生成静态页的方法

    本文实例讲述了CodeIgniter生成静态页的方法.分享给大家供大家参考,具体如下: 现在我们来开发如何让CI框架生成静态页面.下面直接帖代码: $this->output->get_output(); 使用这个方法,你可以可以得到将要输出的数据,并把它保存起来,留着它用(我们做新闻类型网站的时候,常常需要生成静态的HTML文件). $string = $this->output->get_output(); $this->load->helper('file');

  • CodeIgniter读写分离实现方法详解

    本文实例讲述了CodeIgniter读写分离实现方法.分享给大家供大家参考,具体如下: 当前服务器只做了主从,未配置读写分离,读写分离的功能就只有交给程序来实现,这里主要谈谈Codeigniter怎么实现读写分离,并且需要满足以下两点: 1.读写分离对开发应该透明. 网上有方案通过手动load多个DB来实现读写分离,这样的分离跟业务关联太紧,增加了开发难度也不利于维护,我们要做的是默认读重库,写则写主库,读写分离对开发者透明 2.配置简单. 保留现有的配置方式,通过增加一个数组来配置读写分离,不

  • CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法

    本文实例讲述了CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法.分享给大家供大家参考.具体如下: 因为某网站看图比较坑爹,要一页一页的翻页....所以....就写了这么个东西 (我是产品不是程序员)运行速度简直无法忍受,而且经常会有错误发生,所以希望大家帮忙改进(PHP). 当然也欢迎看到PYTHON,GOLANG的版本~~^_^ 1. controllers: $this->load->helper('date'); $this->load->helper('p

  • CI框架数据库查询之join用法分析

    本文实例讲述了CI框架数据库查询之join用法.分享给大家供大家参考,具体如下: 用 A表中的每个ID 去查询这个 ID 在 people 表中的信息.语句如下: $this->db->from('A'); $this->db->join('B', 'sites.id = B.id'); 用 A表中的每个ID 去查询这个 ID 在 B表中的信息. 注意SQL的约定,如果一个列名在二张表中是重复的,你需要在列名前加上表名和一个"."号.因此sites.id在位置桌

  • CI框架中$this->load->library()用法分析

    本文分析了CI框架中$this->load->library()的用法.分享给大家供大家参考,具体如下: 我第一次加载失败,原来是文件名和类名不同的原因,先总结关于CI加载你自己的类文件注意事项: 1.第三方加载文件应放在application/libraries文件下 2.文件名和类名应该相同,并且首字母大写,比如说文件名Excel.php  类名应该为Excel 3.通过:$this->load->library('类');方式在你需要的地方加载 4.也可以在applicati

  • php实现仿写CodeIgniter的购物车类

    本文实例讲述了php实现仿写CodeIgniter的购物车类.分享给大家供大家参考.具体如下: 这里仿写CodeIgniter的购物车类 购物车基本功能: 1) 将物品加入购物车 2) 从购物车中删除物品 3) 更新购物车物品信息 [+1/-1] 4) 对购物车物品进行统计    1. 总项目    2. 总数量    3. 总金额 5) 对购物单项物品的数量及金额进行统计 6) 清空购物车 cart.php文件如下:  <?php /** * * @author quanshuidingda

  • CI(CodeIgniter)简单统计访问人数实现方法 原创

    本文实例讲述了CI(CodeIgniter)简单统计访问人数实现方法.分享给大家供大家参考,具体如下: 废话不说,先上代码: 控制器文件: /application/controllers/hello.php 如下: <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Hello extends CI_Controller { public function index() { echo

  • codeigniter中实现一次性加载多个view的方法

    本文实例讲述了codeigniter中实现一次性加载多个view的方法.分享给大家供大家参考.具体如下: function somecontrollerfunction() { $data['pagetitle'] = "Welcome to jb51.net"; $this->load->view('pageheader', $data); $this->load->view('pagenav'); $this->load->view('pagec

  • CodeIgniter多语言实现方法详解

    本文实例分析了CodeIgniter多语言实现方法.分享给大家供大家参考,具体如下: CI应用目录下有一个language语言包目录,用来配置多种不同的语言.语言的配置位于config文件中,配置格式如下: 复制代码 代码如下: $config['language'] = 'english'; 定义语言文件 language下有个空的english目录,即上面定义的系统默认语言目录,系统会从该目录加载语言包文件.如果要定义不同的语言包,如zh_cn,则创建zh_cn目录并配置相应语言包文件即可.

随机推荐