You will want to store the latitude and longitude of the locations in your database. Then you can use a query to only return results in a certain radius based on the location like:
SELECT
`id`,
(
6373 *
acos(
cos( radians( :lat ) ) *
cos( radians( `lat` ) ) *
cos(
radians( `long` ) - radians( :long )
) +
sin(radians(:lat)) *
sin(radians(`lat`))
)
) `distance`
FROM
`location`
HAVING
`distance` < :distance
ORDER BY
`distance`
LIMIT
25
:lat and :long are the points the passed by the user where lat and long are the points stored in the database.
This is something I can help with in a premium support ticket.