2010-05-13 9 views
0

로 가장 가까운 캠프장을 찾으십시오. 캐나다 내 우편 번호 데이터베이스와 내 검색을위한 스크립팅이 있습니다. 하지만 어떤 이유에서든 우편 번호 검색을 기반으로 가장 가까운 캠프장을 얻지는 못합니다. 내 SQL 쿼리로 뭔가 잘못하고 있는데, 가장 가까운 사이트가 아닌 범위 내에서 비즈니스를 표시하는 캠프 그라운드를 선택할 때와 같습니다. 나는 SQL 쿼리 거리상으로 범위 순서 내에서 우편 코드를 얻기 위해 실행하면우편 번호

나는이 PHP를 얻을

Array (
[N0C 1K0] => 0 
[N0C 1G0] => 9.36 
[N0C 1L0] => 9.36 
[N0C 1E0] => 9.97 
[N0H 2S0] => 12.95 
[N0C 1H0] => 13.01 
[N0G 1R0] => 15.04 
[N0C 1B0] => 19.03 
[N0G 2A0] => 19.07 
[N0H 1C0] => 19.55 
[N0G 1N0] => 20.24 
[N0C 1J0] => 21.67 
[N0G 2L1] => 25.39 
[N0G 2L3] => 25.39 
[N0G 2L0] => 25.39 
[N0H 1R0] => 25.8 campground found 
[N0C 1C0] => 25.83 
[N0H 2V0] => 27.43 
[N0G 1C0] => 29.1 
.... 
[N0G 1A0] => 41.54 
[L0N 1G0] => 41.86 
[N0G 2J0] => 41.94 
[N0G 2V0] => 42.21 
[L0M 1P0] => 43.21 
[N0H 2P0] => 43.76 
[N0G 1Y0] => 44.27 
[L0M 1L0] => 44.27 
[N0G 2P0] => 44.28 campground found 
[L0M 1G0] => 44.48 
[N4L 1R4] => 44.49 campground found 
) 
내가 25.8의 캠프장 세부 사항을 좀하고 싶습니다

, 나는 44.28의 하나를 얻고 제외하고, 도움!

SELECT camp_id FROM campgrounds WHERE postal = '".addslashes($key)."' LIMIT 1; 

주문 건가요? - 나는 이것을 시도했다. 하지만 내 질의서에 잘못된 주문이있을 수 있습니다.

+0

먼저 몇 가지 기본적인 디버깅 작업을 수행합니다. '$ key'는 무엇을 포함합니까? –

+0

이 PHP 클래스를 사용하고 있습니다. http://www.micahcarrick.com/4-19-2005/php-zip-code-range-and-distance-calculation.html; 함수 get_zips_in_range 그런 다음 결과를 가져 와서 foreach를 수행합니다. foreach ($ getagents as $ key => $ value) {} $ 키는 배열의 우편 번호이고 $ 값은 거리입니다. Campgrounds에 대한 결과를 얻었는데, 가장 가까운 것을 얻는 방법을 모르겠다. 어떤 이유로 db에 삽입 된 순서에 따라 정렬을했기 때문이다. 몇 가지 ORDER BY를 시도했지만 가장 가까운 것은 아무것도주지 않았습니다. – Tim

+0

그래서 주어진 배열 요소의 값은 거리를 킬로미터로 표시하고 * (선택적으로) "campground found"라는 문자열을 포함합니까? 아마 당신이 사용하고있는 foreach 루프를 포함하면 도움이 될 것입니다. – JYelton

답변

0

this SO topic에 대한 토론을보고 싶을 수도 있습니다.이 질문은 경도 및 위도의 데이터 세트에서 시작하지만 목표는 여전히 근접성에 관한 것입니다.

HTH

C.