Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wyszukiwanie zbliżeniowe kodu pocztowego php/mysql

Oto najlepszy sposób, jaki znalazłem. Oczywiście będzie to wymagało zakodowania wszystkich swoich kodów pocztowych w bazie danych.

// get all the zipcodes within the specified radius - default 20
function zipcodeRadius($lat, $lon, $radius)
{
    $radius = $radius ? $radius : 20;
    $sql = 'SELECT distinct(ZipCode) FROM zipcode  WHERE (3958*3.1415926*sqrt((Latitude-'.$lat.')*(Latitude-'.$lat.') + cos(Latitude/57.29578)*cos('.$lat.'/57.29578)*(Longitude-'.$lon.')*(Longitude-'.$lon.'))/180) <= '.$radius.';';
    $result = $this->db->query($sql);
    // get each result
    $zipcodeList = array();
    while($row = $this->db->fetch_array($result))
    {
        array_push($zipcodeList, $row['ZipCode']);
    }
    return $zipcodeList;
}

Powinieneś być w stanie po prostu wrzucić tę funkcję. Przekaż mu $lat i $lon kodu pocztowego, dla którego chcesz uzyskać promień, uwzględnij opcjonalny promień i odzyskaj listę kodów pocztowych.

Możesz bardzo łatwo to zmodyfikować, aby wszyscy użytkownicy mieli kod pocztowy IN (radius_sql) i odzyskali listę użytkowników.

Miłego kodowania!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak napisać zapytanie MySQL, które zwraca tymczasową kolumnę zawierającą flagi określające, czy element powiązany z tym wierszem istnieje w innej tabeli

  2. Jak połączyć się z MySQL na Amazon EC2 z systemu Linux/Mac?

  3. Nie podano danych dla parametrów w przygotowanym zestawieniu

  4. Naturalne sortowanie w MySQL

  5. błąd składni dla deklaracji mysql zmiennej