Find all records in database that are within a certain distance of a set of lat and long points

Posted by Mike L on Stack Overflow See other posts from Stack Overflow or by Mike L
Published on 2009-04-26T03:49:18Z Indexed on 2010/04/05 2:33 UTC
Read the original article Hit count: 318

Filed under:
|
|
|

I've seen all the examples and here's what I got so far.

my table is simple:

schools (table name) - School_ID - lat - long - county - extrainfo

here's my code:

<?php

 $con = mysql_connect("xxx","xxx","xxx");



 if (!$con) {

            die('Could not connect: ' . mysql_error());

 } else {}



 mysql_select_db("xxx", $con);

 $latitude = "36.265541";

 $longitude = "-119.207153";

 $distance = "1"; //miles



 $qry = "SELECT *, (3958.75 * ACOS(SIN(" . $latitude . " / 57.2958)*SIN(lat / 57.2958)+COS(" . $latitude . " / 57.2958)*COS(lat / 57.2958)*COS(long / 57.2958 - " . $longitude . " / 57.2958))) as distance FROM schools WHERE (3958.75 * ACOS(SIN(" . $latitude . " / 57.2958)*SIN(lat / 57.2958)+COS(" . $latitude . " / 57.2958)*COS(lat / 57.2958)*COS(long / 57.2958 - " . $longitude . " / 57.2958))) <= " . $distance;

 $results = mysql_query($qry);
 if (mysql_num_rows($results) > 0) {
            while($row = mysql_fetch_assoc($results)) {
                            print_r($row);
            }
 } else {}

 mysql_close($con);

 ?>

but I get this error when I try to run it:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource

© Stack Overflow or respective owner

Related posts about distance

Related posts about php