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程序设计有所帮助 。 |