本文实例讲述了codeigniter实现get分页的方法。分享给大家供大家参考。具体实现方法如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
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程序设计有所帮助。