2016-06-30 2 views
1

나는 다음과 같은 부분 코드가 있습니다mysql의 haversine 계산에서 별칭 값을 어떻게 확인할 수 있습니까?

$query = "SELECT $table.*, outcodepostcodes.lat, outcodepostcodes.lng 
,111.045* DEGREES(ACOS(COS(RADIANS(". $latpoint .")) 
     * COS(RADIANS(outcodepostcodes.lat)) 
     * COS(RADIANS(". $longpoint .") - RADIANS(outcodepostcodes.lng)) 
     + SIN(RADIANS(". $latpoint .")) 
     * SIN(RADIANS(outcodepostcodes.lat)))) AS distance_in_km 
FROM $table  
LEFT JOIN outcodepostcodes 
ON UPPER($table.postcode)=outcodepostcodes.outcode 
WHERE 
$where_no_and 
AND 
(hide='0' OR hide IS NULL OR hide='') 
HAVING distance_in_km <= 20 
ORDER BY rent $reihenach LIMIT $offset, $rowsPerPage 
"; 

어떻게 distance_in_km의 값을 볼 수있다 할 수 있습니다?

나는 쿼리를 실행하고 사용하여 결과를 얻었다 :

$num=mysql_numrows($result); 
$i=0; 
while ($i < $num) 
{ 
$id=mysql_result($result,$i,"id"); 
etc 
etc 
$distance_in_km=mysql_result($result,$i,"distance_in_km"); 
} 

을하지만 난이 경고를 얻을 : 경고 : mysql_result() [function.mysql-결과] :에 MySQL의 성과 지표 (6)에서 찾을 수 없습니다 distance_in_km /home/properf/public_html/4Tsalepf.php on line 668

나는 나머지 코드를 추가했다.

+1

db에 연결하고, 쿼리를 실행하고, 결과를 가져 와서 데이터를 표시해야합니다. 정확히 무슨 문제가 있습니까? – FirstOne

+0

별명 'distance_in_km'을 검색하려고 할 때 나머지 코드를 추가하고 경고를 표시했습니다. –

+1

** 경고 ** : PHP를 배우려는 분이라면 [mysql_query'] (http://php.net/manual/en/function.mysql-query.php) 인터페이스를 사용하지 마십시오. PHP 7에서 제거 된 것은 너무 무섭고 위험합니다. [PDO는 배우기가 어렵지 않습니다.] (http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps -pdo-for-database-access /)와 [PHP The Right Way] (http://www.phptherightway.com/)와 같은 가이드가 모범 사례를 설명합니다. 사용자 매개 변수는 ** [제대로 탈출하지 않았습니다] (http://bobby-tables.com/php)이며 악용 될 수있는 [SQL 주입 버그] (http://bobby-tables.com/)가 있습니다. . – tadman

답변

0

좋아, 경고했던 문제 중 적어도 하나를 해결 :

경고 : mysql_result() [function.mysql-결과]/홈/properf MySQL은 결과 인덱스 6에서 발견되지 distance_in_km /public_html/4Tsalepf.php on line 668

별칭 이름을 distance_in_km에서 단순히 거리로 변경하여이 작업을 수행했습니다. 분명히 이것은 '식별자 인용'과 관련이 있습니다. 나는 그것을 시도하지는 않았지만 아마도 따옴표로 묶어두면 아마도 distance_in_km도 작동 할 것이다. 다음

SELECT distance FROM (
SELECT $table.*, outcodepostcodes.lat, outcodepostcodes.lng 
,2*3 AS distance 
FROM $table 
LEFT JOIN outcodepostcodes 

도 교체를 :

그러나 별명의 값에 액세스 할 수있는 내 문제는 여전히 처음과 같이, 메인 쿼리의 별칭을 가하고, 하위 쿼리를 사용하여 시도 remains.I 단순한 2 * 3 AS 거리에 의해 haversine 계산

$ 거리 = mysql_result ($ result, $ i, "거리") 에서이 결과의 모양을 강제로하려고합니다;

그러나 나는 $ distance를 echo 할 때 예상되는 6 (즉 2 * 3)이 아니라 여전히 비어 있습니다.

대단히 감사드립니다. 감사합니다.

관련 문제