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 变量未定义等错误的解决方法
Jan 12 PHP
PHP 命名空间实例说明
Jan 27 PHP
PHP中对用户身份认证实现两种方法
Jun 04 PHP
PHPExcel内存泄漏问题解决方法
Jan 23 PHP
Laravel 5框架学习之环境与配置
Apr 08 PHP
帝国CMS留言板回复后发送EMAIL通知客户
Jul 06 PHP
总结PHP中DateTime的常用方法
Aug 11 PHP
适合PHP初学者阅读的4本经典书籍
Sep 23 PHP
PHP获取input输入框中的值去数据库比较显示出来
Nov 16 PHP
用php+ajax新建流程(请假、进货、出货等)
Jun 11 PHP
PHP常用header头定义代码示例汇总
Aug 29 PHP
数据结构之利用PHP实现二分搜索树
Oct 25 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
2006/11/25 PHP
队列在编程中的实际应用(php)
2010/09/04 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
2017/03/16 PHP
TNC vs BOOM BO3 第三场2.13
2021/03/10 DOTA
javascript 出生日期和身份证判断大全
2008/11/13 Javascript
javascript:history.go()和History.back()的区别及应用
2012/11/25 Javascript
javascript获取选中的文本的方法代码
2013/10/30 Javascript
yepnope.js使用详解及示例分享
2014/06/23 Javascript
JavaScript实现带缓冲效果的随屏滚动漂浮广告代码
2015/11/06 Javascript
javascript每日必学之多态
2016/02/23 Javascript
JS中多种方式创建对象详解
2016/03/22 Javascript
jquery实现左右无缝轮播图
2020/07/31 Javascript
拥Bootstrap入怀——导航栏篇
2016/05/30 Javascript
利用Jquery实现几款漂亮实用的时间轴(附示例代码)
2017/02/15 Javascript
vue.js利用defineProperty实现数据的双向绑定
2017/04/28 Javascript
js阻止默认右键的下拉菜单方法
2018/01/02 Javascript
Angular实现svg和png图片下载实现
2019/05/05 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
2020/02/02 Javascript
Python列表推导式与生成器表达式用法示例
2018/02/08 Python
python在文本开头插入一行的实例
2018/05/02 Python
python爬取网页转换为PDF文件
2018/06/07 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
2019/01/03 Python
Python使用mongodb保存爬取豆瓣电影的数据过程解析
2019/08/14 Python
Python 求数组局部最大值的实例
2019/11/26 Python
利用pandas向一个csv文件追加写入数据的实现示例
2020/04/23 Python
西安众合通用.net笔试题
2013/03/18 面试题
历史专业大学生职业生涯规划书
2014/03/13 职场文书
商铺租赁意向书
2014/04/01 职场文书
安全生产标语
2014/06/06 职场文书
会计求职自荐信
2014/06/20 职场文书
法学专业毕业实习自我鉴定2014
2014/09/27 职场文书
就业协议书盖章的注意事项
2014/09/28 职场文书
工作疏忽检讨书500字
2014/10/26 职场文书
追讨欠款律师函
2015/05/27 职场文书
幼儿园老师新年寄语
2015/08/17 职场文书
python爬虫之爬取笔趣阁小说
2021/04/22 Python