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
使用sockets:从新闻组中获取文章(二)
Oct 09 PHP
PHP 魔术函数使用说明
May 14 PHP
PHP MySQL应用中使用XOR运算加密算法分享
Aug 28 PHP
PHP中将ip地址转成十进制数的两种实用方法
Aug 15 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
Oct 15 PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
Jan 22 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
Jul 15 PHP
PHP SFTP实现上传下载功能
Jul 26 PHP
laravel项目利用twemproxy部署redis集群的完整步骤
May 11 PHP
php给数组赋值的实例方法
Sep 26 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
Mar 09 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
DOTA2 1月28日更新:监管系统降临刀塔世界
2021/01/28 DOTA
PHP运行时强制显示出错信息的代码
2011/04/20 PHP
php中计算中文字符串长度、截取中文字符串的函数代码
2011/08/09 PHP
PHP的array_diff()函数在处理大数组时的效率问题
2011/11/27 PHP
php 获取百度的热词数据的代码
2012/02/18 PHP
Yii框架用户登录session丢失问题解决方法
2017/01/07 PHP
YII2框架中actions的作用与使用方法示例
2020/03/13 PHP
PHP时间相关常用函数用法示例
2020/06/03 PHP
最短的javascript:地址栏载入脚本代码
2011/10/13 Javascript
javascript实现控制文字大中小显示
2015/04/28 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
2016/08/05 Javascript
浅谈MVC+EF easyui dataGrid 动态加载分页表格
2016/11/10 Javascript
Js apply方法详解
2017/02/16 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
详解angular element()方法使用
2017/04/08 Javascript
利用require.js与angular搭建spa应用的方法实例
2017/07/19 Javascript
AngularJS点击添加样式、点击变色设置的实例代码
2017/07/27 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
vue-router 实现导航守卫(路由卫士)的实例代码
2018/09/02 Javascript
云服务器部署Node.js项目的方法步骤(小白系列)
2020/03/23 Javascript
[00:12]DAC2018 Miracle-站上中单舞台,他能否再写奇迹?
2018/04/06 DOTA
跟老齐学Python之for循环语句
2014/10/02 Python
python复制与引用用法分析
2015/04/08 Python
安装Python的web.py框架并从hello world开始编程
2015/04/25 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
2018/11/10 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
2019/02/21 Python
python scrapy爬虫代码及填坑
2019/08/12 Python
python安装sklearn模块的方法详解
2020/11/28 Python
html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法
2013/01/09 HTML / CSS
Europcar意大利:汽车租赁
2019/07/07 全球购物
毕业生医学检验求职信
2013/10/16 职场文书
留学自荐信的技巧
2013/10/17 职场文书
房地产员工找工作的自我评价
2013/11/15 职场文书
大学毕业生文采飞扬的自我鉴定
2013/12/03 职场文书
2015年纪念“卢沟桥事变”78周年活动方案
2015/05/06 职场文书
MySQL深分页问题解决思路
2022/12/24 MySQL