Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Mysql查询转换为cakephp条件_Php_Mysql_Arrays_Cakephp - Fatal编程技术网

将Mysql查询转换为cakephp条件

将Mysql查询转换为cakephp条件,php,mysql,arrays,cakephp,Php,Mysql,Arrays,Cakephp,我想把这个查询转换成cakephp SELECT l.* , ( ( ( ACOS( SIN( ( $lat * PI( ) /180 ) ) * SIN( ( l.lat * PI( ) /180 ) ) + COS( ( $lat * PI( ) /180 )

我想把这个查询转换成cakephp

SELECT l.* , (
                (
                (
                ACOS( SIN( (
                $lat * PI( ) /180 ) ) * SIN( (
                l.lat * PI( ) /180 )
                ) + COS( (
                $lat * PI( ) /180 )
                ) * COS( (
                l.lat * PI( ) /180 )
                ) * COS( (
                ( $lng  -  l.long ) * PI( ) /180 )
                )
                )
                ) *180 / PI( )
                ) *60 * 1.1515 * 1.609344
                ) AS  `distance` 
                FROM  hosts l 
                HAVING  `distance` <= 50
                ORDER BY  `distance` ASC

在调用
Model::find:

// Controller code

$this->Note->virtualFields = array(
    'distance' => "( 3959 * acos( cos( radians($lat) ) * cos( radians( Note.latitude ) ) * cos( radians( Note.longitude ) - radians($lng) ) + sin( radians($lat) ) * sin( radians( Note.latitude ) ) ) )"
);
$data = $this->Note->find('all', array('fields' => array('distance'), 'conditions' => array('distance <' => 1)));
//控制器代码
$this->Note->virtualFields=array(
“距离”=>“(3959*acos(弧度($lat))*cos(弧度(注.纬度))*cos(弧度(注.经度)-弧度($lng))+sin(弧度($lat))*sin(弧度(注.纬度)))”
);
$data=$this->Note->find('all',array('fields'=>array('distance'),'conditions'=>array('distance Tip:-使用虚拟字段)。
// Controller code

$this->Note->virtualFields = array(
    'distance' => "( 3959 * acos( cos( radians($lat) ) * cos( radians( Note.latitude ) ) * cos( radians( Note.longitude ) - radians($lng) ) + sin( radians($lat) ) * sin( radians( Note.latitude ) ) ) )"
);
$data = $this->Note->find('all', array('fields' => array('distance'), 'conditions' => array('distance <' => 1)));