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

 更新时间:2017年7月6日 23:49  点击:1679
小编推荐的这篇文章介绍了cakephp2.X多表联合查询join及使用分页查询的方法,非常实用,有兴趣的同学快看看吧

格式化参数:

 代码如下 复制代码

publicfunctiongetconditions($data){

  $this->loadModel("Cm.LoginHistory");

  $conditions=array();

  foreach($dataas$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获取中国时间(上海时区时间)及美国时间的方法,非常实用,有兴趣的同学快来看看吧

中国时间:

 

 代码如下 复制代码

/**

 * 获取中国时间,即上海时区时间

 * @param <type> $format

 * @return <type>

 */

functiongetChinaTime($format="Y-m-d H:i:s") {

  $timezone_out= date_default_timezone_get();

  date_default_timezone_set('Asia/Shanghai');

  $chinaTime=date($format);

  date_default_timezone_set($timezone_out);

  return$chinaTime;

}

echogetChinaTime();//输出当前时间,如:2017-02-23 11:50:50

 

美国时区:

America/New_York 美国东部

封装了另外一个方法:

 

 代码如下 复制代码

/**

 * 时间格式化

 * @param string $dateformat 时间格式

 * @param int $timestamp 时间戳

 * @param int $timeoffset 时区偏差

 * @return string

 */

functionqgmdate($dateformat='Y-m-d H:i:s',$timestamp='',$timeoffset= 8) {

  if(empty($timestamp)) {

    $timestamp= time();

  }

  $result=gmdate($dateformat,$timestamp+$timeoffset* 3600);

  return$result;

}

//应用举例:获取美国时间

echoqgmdate('Y-m-d H:i:s','', -4);//输出美国时间,如:2017-02-22 23:51:17

 

小编推荐的这篇文章介绍了利用php生成验证码的教程,非常实用,有兴趣的同学快来看看吧。

 

 代码如下复制代码

<?php

/**

 * php生成验证码

 * @param $width 画布宽

 * @param $height 画布高

 * @param $vcodelen 验证码长度

 * @param $pointnum 干扰像素点数量

 * @param $linenum 干扰线条数量

 *

 * 思路:创建验证码画布,生成并填充背景色,生成验证码内容/干扰像素点/线,填充到画布,输出。

 */

 $width= 100;

 $height= 30;

 $vcodelen= 4;

 $pointnum= 200;

 $linenum= 3;

 // 创建画布

 $image= imagecreatetruecolor($width,$height);

 // 创建色块

 $bgcolor= imagecolorallocate($image, 255, 255, 255);

 // 填充画布背景色

 imagefill($image, 0, 0,$bgcolor);

 // 验证码内容

 for($i=0;$i<$vcodelen;$i++) {

  // 字体大小

  $fontsize= 5;

  // 字体颜色,颜色在限定范围内随机

  $fontcolor= imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120));

  $data='abcdefghijklmnopqrstuvwxyz0123456789'

  // 验证码内容在以上字符串内随机截取

  $fontcontent=substr($data, rand(0,strlen($data)),1);

  // 字符串显示位置

  $x= ($i*$width/4)+rand(5,15);

  $y= rand(5,10);

  // 字符串填充图片

  // imagestring的字体大小可选1-5,字体再大需要用imagettftext函数(需要字体文件)

  imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);

  // imagettftext($image, $fontsize, 0, $x, $y, $fontcolor, '/font/Geneva.dfont', $fontcontent);

 }

 // 干扰像素点

 for($i=0;$i<$pointnum;$i++) {

  $pointcolor= imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120));

  // 画布填充像素点函数

  imagesetpixel($image, rand(0,$width), rand(0,$height),$pointcolor);

 }

 // 干扰线条

 for($i=0;$i<$linenum;$i++) {

  $linecolor= imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120));

  // 画布填充线条函数

  imageline($image, rand(0,$width), rand(0,$height), rand(0,$width), rand(0,$height),$linecolor);

 }

 // 图片输出格式

 header('content-type: image/png');

 // 输出验证码图片

 imagepng($image);

 // 销毁画布

 imagedestroy($image);

?>

 

小编给大家推荐的这篇文章介绍了php生成图片缩略图功能示例,非常实用,有兴趣的同学快看看吧

本文实例讲述了php生成图片缩略图功能。分享给大家供大家参考,具体如下:

完整代码如下:

 

 代码如下 复制代码

<?php

/*

 * Created on 2011-3-18

 *

 * To change the template for this generated file go to

 * Window - Preferences - PHPeclipse - PHP - Code Templates

*/

/*构造函数-生成缩略图+水印,参数说明:

$srcFile-图片文件名,

$dstFile-另存文件名,

$markwords-水印文字,

$markimage-水印图片,

$dstW-图片保存宽度,

$dstH-图片保存高度,

$rate-图片保存品质*/

makethumb("1.jpg","aa/b.jpg","50","50");

functionmakethumb($srcFile,$dstFile,$dstW,$dstH,$rate= 100,$markwords= null,$markimage= null) {

  $data=GetImageSize($srcFile);

  switch($data[2]) {

    case1:

      $im= @ImageCreateFromGIF($srcFile);

    break;

    case2:

      $im= @ImageCreateFromJPEG($srcFile);

    break;

    case3:

      $im= @ImageCreateFromPNG($srcFile);

    break;

  }

  if(!$im)returnFalse;

  $srcW= ImageSX($im);

  $srcH= ImageSY($im);

  $dstX= 0;

  $dstY= 0;

  if($srcW*$dstH>$srcH*$dstW) {

    $fdstH=round($srcH*$dstW/$srcW);

    $dstY=floor(($dstH-$fdstH) / 2);

    $fdstW=$dstW;

  }else{

    $fdstW=round($srcW*$dstH/$srcH);

    $dstX=floor(($dstW-$fdstW) / 2);

    $fdstH=$dstH;

  }

  $ni= ImageCreateTrueColor($dstW,$dstH);

  $dstX= ($dstX< 0) ? 0 :$dstX;

  $dstY= ($dstX< 0) ? 0 :$dstY;

  $dstX= ($dstX> ($dstW/ 2)) ?floor($dstW/ 2) :$dstX;

  $dstY= ($dstY> ($dstH/ 2)) ?floor($dstH/ s) :$dstY;

  $white= ImageColorAllocate($ni, 255, 255, 255);

  $black= ImageColorAllocate($ni, 0, 0, 0);

  imagefilledrectangle($ni, 0, 0,$dstW,$dstH,$white);// 填充背景色

  ImageCopyResized($ni,$im,$dstX,$dstY, 0, 0,$fdstW,$fdstH,$srcW,$srcH);

  if($markwords!= null) {

    $markwords= iconv("gb2312","UTF-8",$markwords);

    //转换文字编码

    ImageTTFText($ni, 20, 30, 450, 560,$black,"simhei.ttf",$markwords);//写入文字水印

    //参数依次为,文字大小|偏转度|横坐标|纵坐标|文字颜色|文字类型|文字内容

     

  }elseif($markimage!= null) {

    $wimage_data=GetImageSize($markimage);

    switch($wimage_data[2]) {

      case1:

        $wimage= @ImageCreateFromGIF($markimage);

      break;

      case2:

        $wimage= @ImageCreateFromJPEG($markimage);

      break;

      case3:

        $wimage= @ImageCreateFromPNG($markimage);

      break;

    }

    imagecopy($ni,$wimage, 500, 560, 0, 0, 88, 31);//写入图片水印,水印图片大小默认为88*31

    imagedestroy($wimage);

  }

  ImageJpeg($ni,$dstFile,$rate);

  ImageJpeg($ni,$srcFile,$rate);

  imagedestroy($im);

  imagedestroy($ni);

}

?>

 

[!--infotagslink--]

相关文章

  • Mybatis Plus select 实现只查询部分字段

    这篇文章主要介绍了Mybatis Plus select 实现只查询部分字段的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-01
  • postgresql 实现多表关联删除

    这篇文章主要介绍了postgresql 实现多表关联删除操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-02
  • MyBatisPlus-QueryWrapper多条件查询及修改方式

    这篇文章主要介绍了MyBatisPlus-QueryWrapper多条件查询及修改方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2022-06-27
  • Oracle使用like查询时对下划线的处理方法

    这篇文章主要介绍了Oracle使用like查询时对下划线的处理方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-16
  • 解决mybatis-plus 查询耗时慢的问题

    这篇文章主要介绍了解决mybatis-plus 查询耗时慢的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-07-04
  • MySQL中在查询结果集中得到记录行号的方法

    如果需要在查询语句返回的列中包含一列表示该条记录在整个结果集中的行号, ISO SQL:2003 标准提出的方法是提供 ROW_NUMBER() / RANK() 函数。 Oracle 中可以使用标准方法(8i版本以上),也可以使用非标准的 ROWNUM ; MS SQL...2015-03-15
  • Node实现搜索框进行模糊查询

    这篇文章主要为大家详细介绍了Node实现搜索框进行模糊查询,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-06-28
  • Mybatis用注解写in查询的实现

    这篇文章主要介绍了Mybatis用注解写in查询的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-07-13
  • PHP+Mysql+jQuery查询和列表框选择操作实例讲解

    本文讲解如何通过ajax查询mysql数据,并将返回的数据显示在待选列表中,再通过选择最终将选项加入到已选区,可以用在许多后台管理系统中。本文列表框的操作依赖jquery插件。HTML <form id="sel_form" action="post.php" me...2015-10-23
  • Mybatis和Mybatis-Plus时间范围查询方式

    这篇文章主要介绍了Mybatis和Mybatis-Plus时间范围查询方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-08-06
  • mysql like查询字符串示例语句

    MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi、grep和sed的扩展正则表达式模式匹配的格式 一、SQL模式SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。在 MySQL...2013-10-04
  • JPA如何使用nativequery多表关联查询返回自定义实体类

    这篇文章主要介绍了JPA如何使用nativequery多表关联查询返回自定义实体类,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-11-18
  • C#百万数据查询出现超时问题的解决方法

    这篇文章主要介绍了C#百万数据查询出现超时问题的解决方法,是非常实用的技巧,需要的朋友可以参考下...2020-06-25
  • Element-ui 自带的两种远程搜索(模糊查询)用法讲解

    这篇文章主要介绍了Element-ui 自带的两种远程搜索(模糊查询)用法讲解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-29
  • Select下拉框模糊查询功能实现代码

    这篇文章主要介绍了Select下拉框模糊查询功能实现代码的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2016-07-29
  • postgresql数据库连接数和状态查询操作

    这篇文章主要介绍了postgresql数据库连接数和状态查询操作,具有很好的参考价值,对大家有所帮助。一起跟随小编过来看看吧...2021-02-01
  • Mybatis-Plus根据时间段去查询数据的实现示例

    这篇文章主要介绍了Mybatis-Plus根据时间段去查询数据的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-18
  • rails常用数据库查询操作、方法浅析

    这篇文章主要介绍了rails常用数据库查询操作、方法浅析,总结的比较全,WEB开发种常用的数据库操作都列出了rails对应代码,需要的朋友可以参考下...2020-06-30
  • postgresql的jsonb数据查询和修改的方法

    这篇文章主要介绍了postgresql的jsonb数据查询和修改的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-03
  • Oracle 实现将查询结果保存到文本txt中

    这篇文章主要介绍了Oracle 实现将查询结果保存到文本txt中的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-07