cakephp2.X多表联合查询join及使用分页查询的方法


Posted in PHP onFebruary 23, 2017

本文实例讲述了cakephp2.X多表联合查询join及使用分页查询的方法。分享给大家供大家参考,具体如下:

格式化参数:

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;
}

分页查询:

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

PHP 相关文章推荐
PHP概述.
Oct 09 PHP
随时给自己贴的图片加文字的php水印
Mar 16 PHP
php miniBB中文乱码问题解决方法
Nov 25 PHP
PHP 八种基本的数据类型小结
Jun 01 PHP
async和DOM Script文件加载比较
Jul 20 PHP
使用PHP如何实现高效安全的ftp服务器(二)
Dec 30 PHP
php实现购物车功能(上)
Jul 23 PHP
PHP的Yii框架中View视图的使用进阶
Mar 29 PHP
再谈PHP中单双引号的区别详解
Jun 12 PHP
PHP中CheckBox多选框上传失败的代码写法
Feb 13 PHP
PHP PDOStatement::errorInfo讲解
Jan 31 PHP
laravel 之 Eloquent 模型修改器和序列化示例
Oct 17 PHP
PHP获取中国时间(上海时区时间)及美国时间的方法
Feb 23 #PHP
php实现的XML操作(读取)封装类完整实例
Feb 23 #PHP
利用php生成验证码
Feb 23 #PHP
php实现base64图片上传方式实例代码
Feb 22 #PHP
php中实现字符串翻转的方法
Feb 22 #PHP
php生成图片缩略图功能示例
Feb 22 #PHP
php图形jpgraph操作实例分析
Feb 22 #PHP
You might like
浅析php中抽象类和接口的概念以及区别
2013/06/27 PHP
php继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
PHP中phar包的使用教程
2017/06/14 PHP
关于PHP中协程和阻塞的一些理解与思考
2017/08/11 PHP
php 中的信号处理操作实例详解
2020/03/04 PHP
dreamweaver 安装Jquery智能提示
2011/04/02 Javascript
javascript面向对象编程代码
2011/12/19 Javascript
JavaScript调用客户端的可执行文件(示例代码)
2013/11/28 Javascript
js格式化时间和js格式化时间戳示例
2014/02/10 Javascript
JavaScript验证18位身份证号码最后一位正确性的实现代码
2014/08/07 Javascript
JavaScript AOP编程实例
2015/06/16 Javascript
jquery调整表格行tr上下顺序实例讲解
2016/01/09 Javascript
Node.js中Request模块处理HTTP协议请求的基本使用教程
2016/03/31 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
在 Angular 中实现搜索关键字高亮示例
2017/03/21 Javascript
ES6新特性之函数的扩展实例详解
2017/04/01 Javascript
微信小程序开发之animation循环动画实现的让云朵飘效果
2017/07/14 Javascript
微信小程序自定义prompt组件步骤详解
2018/06/12 Javascript
微信小程序scroll-x失效的完美解决方法
2018/07/18 Javascript
Vue使用vue-recoure + http-proxy-middleware + vuex配合promise实现基本的跨域请求封装
2019/10/21 Javascript
vue 内联样式style中的background用法说明
2020/08/05 Javascript
VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决
2020/09/27 Javascript
详解Python的Django框架中manage命令的使用与扩展
2016/04/11 Python
PyQt5 pyqt多线程操作入门
2018/05/05 Python
对命令行模式与python交互模式介绍
2018/05/12 Python
tensorflow之自定义神经网络层实例
2020/02/07 Python
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
利用Node实现HTML5离线存储的方法
2020/10/16 HTML / CSS
美国最大的网络男装服装品牌:Bonobos
2017/05/25 全球购物
Loreto Gallo英国:欧洲领先的在线药房
2021/01/21 全球购物
关于中国梦的演讲稿
2014/04/23 职场文书
销售团队口号大全
2014/06/06 职场文书
党员民主评议总结
2014/10/20 职场文书
2014年银行员工工作总结
2014/11/12 职场文书
golang 如何用反射reflect操作结构体
2021/04/28 Golang
浅谈Web Storage API的使用
2021/06/23 Javascript