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的库,结果发现很多东西
Dec 31 PHP
php win下Socket方式发邮件类
Aug 21 PHP
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
Mar 21 PHP
php方法调用模式与函数调用模式简例
Sep 20 PHP
Uncaught exception com_exception with message Failed to create COM object
Jan 11 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
Jun 05 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
Aug 21 PHP
PHP curl 抓取AJAX异步内容示例
Sep 09 PHP
ThinkPHP采用原生query实现关联查询left join实例
Dec 02 PHP
php+mysqli实现将数据库中一张表信息打印到表格里的方法
Jan 28 PHP
php生成酷炫的四个字符验证码
Apr 22 PHP
PHP面向对象之事务脚本模式(详解)
Jun 07 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为表单获取的URL 地址预设 http 字符串函数代码
2010/05/26 PHP
比较详细PHP生成静态页面教程
2012/01/10 PHP
php获取汉字首字母的函数
2013/11/07 PHP
PHP 生成N个不重复的随机数
2015/01/21 PHP
php获取字符串中各个字符出现次数的方法
2015/02/23 PHP
通过php动态传数据到highcharts
2017/04/05 PHP
JQuery从头学起第二讲
2010/07/04 Javascript
Javascript 静态页面实现随机显示广告的办法
2010/11/17 Javascript
如何确保JavaScript的执行顺序 之jQuery.html深度分析
2011/03/03 Javascript
判断用户是否在线的代码
2011/03/05 Javascript
原生js实现半透明遮罩层效果具体代码
2013/06/06 Javascript
javascript预加载图片、css、js的方法示例介绍
2013/10/14 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
Javascript中的匿名函数与封装介绍
2015/03/15 Javascript
第一次接触神奇的Bootstrap网格系统
2016/07/27 Javascript
关于RequireJS的简单介绍即使用方法
2016/10/20 Javascript
基于JavaScript实现百度搜索框效果
2020/06/28 Javascript
jQuery中图片展示插件highslide.js的简单dom
2018/04/22 jQuery
Vue 401配合Vuex防止多次弹框的案例
2020/11/11 Javascript
js实现扫雷源代码
2020/11/27 Javascript
[44:58]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第二场
2018/04/06 DOTA
编写Python脚本来获取mp3文件tag信息的教程
2015/05/04 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
2016/04/13 Python
详解Python传入参数的几种方法
2019/05/16 Python
Python使用itcaht库实现微信自动收发消息功能
2020/07/13 Python
利用python清除移动硬盘中的临时文件
2020/10/28 Python
NHL官方在线商店:Shop.NHL.com
2020/05/01 全球购物
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
2012/05/30 面试题
红领巾广播站广播稿
2014/02/01 职场文书
2014国培学习感言
2014/03/05 职场文书
旷课检讨书范文
2014/10/30 职场文书
2014年组织部工作总结
2014/11/14 职场文书
2014年图书室工作总结
2014/12/09 职场文书
荆州古城导游词
2015/02/06 职场文书
2019通用版导游词范本!
2019/08/07 职场文书
MySQL8.0.18配置多主一从
2021/06/21 MySQL