Digamos que você tenha uma mesa com lojas ( fast foods, restaurantes ) que oferecem seus serviços ( entrega de comida ) a uma certa distância de onde estão e deseja que todas as lojas atendam com base em um local específico (* ex usuários atuais localização *).
Você pode fazer isso com a seguinte instrução SQL.
$lat = 41.118491 // user's latitude
$lng = 25.404509 // user's longitude
SELECT *,
( 6371 * acos( cos( radians($lat) )
* cos( radians( latitude ) )
* cos( radians( longitude ) - radians($lng) ) + sin( radians($lat) )
* sin( radians( latitude ) ) ) )
AS calculated_distance
FROM settings as T
HAVING calculated_distance <= (SELECT distance FROM settings WHERE sid=T.sid)
ORDER BY distance_calc
Para pesquisar por milhas em vez de quilômetros, substitua 6371 por 3959.