本文实例讲述了cakephp2.X多表联合查询join及使用分页查询的方法。分享给大家供大家参考,具体如下:
格式化参数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
public function getconditions( $data ){
$this ->loadModel( "Cm.LoginHistory" );
$conditions = array ();
foreach ( $data as $key => $val ){
if ( $key == 'start_date' ){
$conditions [ 'LoginHistory.logintime >=' ]=trim( $val );
} elseif ( $key == 'end_date' ){
$conditions [ 'LoginHistory.logouttime <=' ]=trim( $val );
} elseif ( $key == 'selectvsoftid' and $val != '' ){
$conditions [ 'LoginHistory.LOGINSUBSYSTEM LIKE' ]= '%' .trim( $val ). '%' ;
} elseif ( $key == 'username' and $val != '' ){
$conditions [ 'LoginHistory.USERNAME LIKE' ]= '%' .trim( $val ). '%' ;
} elseif ( $key == 'vdevicename' and $val != '' ){
$conditions [ 'LoginHistory.WINDOWNAME LIKE' ]= '%' .trim( $val ). '%' ;
} elseif ( $key == 'selectvsoftid' and $val != '' ){
$conditions [ 'LoginHistory.PHDEVICENAME LIKE' ]= '%' .trim( $val ). '%' ;
}
}
return $conditions ;
}
|
分页查询:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
$fields = array ( 'LoginHistory.windowname' , 'LoginHistory.loginsubsystem' , 'VirtualDevice.PHDEVICEID' , 'LoginHistory.userid' , 'VirtualDevice.SYSTYPEID' , 'UserInfo.USERNAME' , '"SUM"(LoginHistory.LOGOUTTIME-LoginHistory.LOGINTIME) moument' , 'UserInfo.USERNAME' , 'DeviceInfo.DEVICENAME' );
$group = array ( 'LoginHistory.windowname' , 'LoginHistory.loginsubsystem' , 'LoginHistory.userid' , 'UserInfo.USERNAME' , 'DeviceInfo.DEVICENAME' , 'VirtualDevice.SYSTYPEID' , 'VirtualDevice.PHDEVICEID' );
$this ->paginate = array ( 'conditions' => $conditions , 'fields' => $fields , 'group' => $group , 'limit' =>9, 'joins' => array (
array (
'alias' => 'UserInfo' ,
'table' => 'SMM_USERINFO' ,
'type' => 'LEFT' ,
'conditions' => ' LoginHistory.USERID=UserInfo.USERID ' ,
),
array (
'alias' => 'VirtualDevice' ,
'table' => 'ET_NMVIRTUALDEVICEINFO' ,
'type' => 'LEFT' ,
'conditions' => ' LoginHistory.WINDOWNAME=VirtualDevice.DEVICENAME ' ,
),
array (
'alias' => 'DeviceInfo' ,
'table' => 'ET_NMDEVICEINFO' ,
'type' => 'LEFT' ,
'conditions' => ' VirtualDevice.PHDEVICEID=DeviceInfo.DEVICEID ' ,
),
));
$LoginHistory = $this ->paginate( 'LoginHistory' );
$this ->set( 'loginhistory' , $LoginHistory );
|
希望本文所述对大家PHP程序设计有所帮助。