I did similar MySQL geocoding situation where I had to use HAVING and
ended up with something like this, you'll probably have to tweak it
for your own system.

http://blog.joebeeson.com/wp-content/uploads/2008/08/query.jpg

Sorry it's an image, didn't feel like typing it all back up. The
original post is here http://blog.joebeeson.com/?p=125 if it helps at
all.

On Sep 19, 10:51 am, Andras Kende <[EMAIL PROTECTED]> wrote:
> Hello,
>
> Im using the geocode behaviour 
> fromhttp://bakery.cakephp.org/articles/view/geocoding-in-cakephp
>
> findAllByDistance(........
> .......
> $model->find('all',array('conditions'=>"(3958 * 3.1415926 *
> SQRT(({$y2} - {$y}) * ({$y2} - {$y}) + COS({$y2} / 57.29578) *
> COS({$y} / 57.29578) * ({$x2} - {$x}) * ({$x2} - {$x})) / 180) <=
> {$distance}"));
> .....
>
> Works fine, but would like to add virtual 'distance' into the query so
> results can be sorted by shortest distance
>
> I think this is could be done with MySQL HAVING statement ?
>
> maybe similar too:
>
> SELECT id, ( 3959 * acos( cos( radians(blahblah) ) *
> cos( radians( lat ) ) * cos( radians( lng ) - radians(blahblah) ) +
> sin( radians(blah) ) *sin( radians( lat ) ) ) ) AS distance FROM
> markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;
>
> Thanks for any help!!!
>
> Andras
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to