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