Merlin Morgenstern wrote: > Hi there, > > I am trying to find mysql db entries inside a tabel with the help of php > that are in the distance of a certain amount of kilometers from a given > zip code. > > Unfortunatelly something must be wrong, as I do not get the desired > results. Has anybody experience with that? > > Here is the code I wrote: > > $plz = '79279'; > $distance = 1000; > > ################################################### > # find geo data for this zip code > $stmt =" > SELECT > lat, > lang > FROM > test.zip > WHERE > zip = '$plz' > "; > $row=db_get_row2($stmt); > $breite = deg2rad($row->lat); > $laenge = deg2rad($row->lang); > ################################################### > > if ($breite){ // only if results > ################################################### > # search for the members > $stmt = " > SELECT SQL_CALC_FOUND_ROWS > cl.ID, > g.city, > g.area_1 AS quarter, > g.* , > IFNULL( ( > ACOS( ( > SIN( $breite ) * SIN( RADIANS( lat ) ) ) + ( COS( > $breite ) * COS( RADIANS( lat ) ) * COS( RADIANS( lang ) - $laenge ) ) ) > *6371 > ), 0 > ) AS e > FROM > test.zip g, > test.cl cl > WHERE > IFNULL( ( > ACOS( ( > SIN( $breite ) * SIN( RADIANS( lat ) ) ) + ( COS( > $breite ) * COS( RADIANS( lat ) ) * COS( RADIANS( lang ) - $laenge ) ) ) > *6371 > ), 0 > ) < $distance > AND g.id = cl.zip_id > GROUP BY cl.ID > ORDER BY > e ASC > "; > $result = execute_stmt($stmt, $link); > while ($row = mysql_fetch_object($result)){ > $entfernung_km = round(($row->e*1.4),2); > echo 'cl: '.$row->cl_id.' '.$entfernung_km.'<br>'; > } > $num_results = db_numrows($result); > ################################################### > > } // end if results > > Thank you for any help! > > Merlin 1: You really could do with using the mysql spatial extensions http://dev.mysql.com/doc/refman/5.0/en/spatial-extensions.html 2: here's an old old post to this list that may help you http://coding.derkeiler.com/Archive/PHP/php.general/2008-09/msg00531.html Best, Nathan -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php