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 相关文章推荐
自己前几天写的无限分类类
Feb 14 PHP
一个简单的PHP&amp;MYSQL留言板源码
Jul 19 PHP
在PHP中养成7个面向对象的好习惯
Jul 17 PHP
php仿微信红包分配算法的实现方法
May 13 PHP
PHP获取客户端及服务器端IP的封装类
Jul 21 PHP
PHP函数引用返回的实例详解
Sep 11 PHP
php表单处理操作
Nov 16 PHP
PHP实现链式操作的三种方法详解
Nov 16 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
Jun 09 PHP
php数组和链表的区别总结
Sep 20 PHP
php设计模式之单例模式用法经典示例分析
Sep 20 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
Feb 27 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
重置版游戏视频
2020/04/09 魔兽争霸
php基础知识:类与对象(4) 范围解析操作符(::)
2006/12/13 PHP
PHP foreach循环使用详解与实例代码
2010/05/08 PHP
Trying to clone an uncloneable object of class Imagic的解决方法
2012/01/11 PHP
php合并js请求的例子
2013/11/01 PHP
PHP中的类型提示(type hinting)功能介绍
2015/07/01 PHP
laravel 解决paginate查询多个字段报错的问题
2019/10/22 PHP
JAVASCRIPT 对象的创建与使用
2021/03/09 Javascript
js css样式操作代码(批量操作)
2009/10/09 Javascript
JS截取字符串常用方法整理及使用示例
2013/10/18 Javascript
js 一个关于图片onload加载的事
2013/11/10 Javascript
js中switch case循环实例代码
2013/12/30 Javascript
KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定
2016/10/10 Javascript
微信小程序 swiper组件详解及实例代码
2016/10/25 Javascript
微信小程序  modal弹框组件详解
2016/10/27 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
2017/02/16 Javascript
基于Bootstrap漂亮简洁的CSS3价格表(附源码下载)
2017/02/28 Javascript
从零开始学习Node.js系列教程三:图片上传和显示方法示例
2017/04/13 Javascript
简单了解JS打开url的方法
2020/02/21 Javascript
Vue项目中数据的深度监听或对象属性的监听实例
2020/07/17 Javascript
echarts 使用formatter 修改鼠标悬浮事件信息操作
2020/07/20 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
2020/07/28 Javascript
详解JavaScript 的执行机制
2020/09/18 Javascript
[01:20]PWL S2开团时刻第三期——团战可以输 蝙蝠必须死
2020/11/26 DOTA
Python的类实例属性访问规则探讨
2015/01/30 Python
详解Python的Django框架中的Cookie相关处理
2015/07/22 Python
将Python代码嵌入C++程序进行编写的实例
2015/07/31 Python
Python中if elif else及缩进的使用简述
2018/05/31 Python
Django框架 Pagination分页实现代码实例
2019/09/04 Python
如何利用Python写个坦克大战
2020/11/18 Python
全球知名鞋履品牌授权零售商:Journeys
2016/09/17 全球购物
L’AGENCE官网:加州女装品牌
2018/06/03 全球购物
SQL Server提供的3种恢复模型都是什么? 有什么区别?
2012/05/13 面试题
高一新生军训感言
2014/03/02 职场文书
护理助产毕业生的求职信
2014/03/02 职场文书
关于的python五子棋的算法
2022/05/02 Python