2015-02-05 2 views
0

은 내가 구글의 문서 here은 - 구글은

문제는 내가 검색

에 몇 필터를 추가 할 수 있습니다에서 발견 용액을 이용하여 근처의 장소를 얻기 위해 노력하고 매핑

기존 솔루션

내가 위의 문

SIZE between $firstrange and $secondrange" 
에이 필터를 추가 할 무엇
$sql2 = "SELECT *, (3959 * acos(cos(radians(" . $row1['tubeLan'] . ")) * cos(radians(mapLan)) * cos(radians(mapLon) - radians(" . $row1['tubeLon'] . ")) + sin(radians(" . $row1['tubeLan'] . ")) * sin(radians(mapLan)))) AS distance FROM " . $table . " HAVING distance < 2500 ORDER BY distance LIMIT 0 , 20; 

0

나는이 시도하지만 내가 잘못 여기서 뭐하는 거지 필요한 결과

$sql2 = "SELECT *, (3959 * acos(cos(radians(" . $row1['tubeLan'] . ")) * cos(radians(mapLan)) * cos(radians(mapLon) - radians(" . $row1['tubeLon'] . ")) + sin(radians(" . $row1['tubeLan'] . ")) * sin(radians(mapLan)))) AS distance FROM " . $table . " HAVING distance < 2500 ORDER BY distance LIMIT 0 , 20 and SIZE between $firstrange and $secondrange"; 

를 제공하지 않았다? 그들 사이에 AND을 넣는 것만으로 이러한 조건을 추가 할 수 있습니까?

답변

1

사용 조건을 추가 할 수 있습니다,하지만 당신은에 추가 할 필요가 있는지 당신의 WHERE 여부를 문의 끝에, HAVING 절 :

SELECT *, 
(3959 * acos(cos(radians(" . $row1['tubeLan'] . ")) * cos(radians(mapLan )) * cos(radians(mapLon) - radians(" . $row1['tubeLon'] . ")) + sin(radians(" . $row1['tubeLan'] . ")) * sin(radians(mapLan)))) AS distance 
FROM " . $table . " 
WHERE SIZE between $firstrange and $secondrange 
HAVING distance < 2500 ORDER BY distance LIMIT 0 , 20 ; 

(내가 크기가 테이블의 열 겠지)

+0

감사합니다. 작동 중입니다. – Muhammad