2012-11-17 104 views
-1

我在我的表'stores'中有4個colums - id,store_name,lat,lng。我想顯示30英里半徑內的所有結果。我得到這個:查詢爲空

$lat = '25.7742644'; 
$lng = '-80.1936558'; 
$miles = 30; 

$query = mysql_query("SELECT *, 
      (3959 * acos(cos(radians($lat)) 
      * cos(radians(lat)) 
      * cos(radians(lng) - radians($lng)) 
      + sin(radians($lat)) 
      * sin(radians(lat)))) AS distance 
     FROM stores 
     HAVING distance < $miles 
     ORDER BY distance 
     LIMIT 0, 20 "); 
    $result = mysql_query($query) or die(mysql_error()); 
    while($row=mysql_fetch_array($result)) { 


    echo $store_name; 



    } 

但是當我啓動腳本,我得到「查詢是空的」?

+1

你'distance' calcualtion返回一個零...好像這條線是促成因素'* COS(弧度(LNG) - 弧度( $ lng))'...否則,距離結果爲8643.135040508392 ...與30英里半徑相比,它不是很大嗎? – bonCodigo

回答

0

嘗試了這一點:

<?php 

$lng = '-80.1936558'; 
$lat = '25.7742644'; 
$miles = 30; 

$query = "SELECT *, 
(3959 * acos(cos(radians('$lat')) * 
cos(radians(latitude)) * 
cos(radians(lnggitude) - 
radians('$lng')) + 
sin(radians('$lat')) * 
sin(radians(latitude)))) 
AS distance FROM yourtable HAVING distance < '$miles' ORDER BY distance ASC LIMIT 0, 20"; 
$result = mysql_query($query) or die(mysql_error()); 
while($row=mysql_fetch_array($result)){ 
    echo $row["store_name"] . "<br />"; 
} 

?> 

Tutorial link.

+0

那麼我沒有得到任何erros我只是有空的白頁? –

+0

@ZdravkoNikolov'echo $ store_name;'是不對的,你必須使用'echo $ row [「some_name」];' – HamZa

+0

你是個好人,謝謝! –

3
$query = mysql_query("SELECT *, ...") 
^^^^^^ ^^^^^^^^^^^ 

$result = mysql_query($query) or die(mysql_error()); 
      ^^^^^^^^^^^ ^^^^^^ 

擺脫其中一個mysql_query

+0

Warning on line: while($ row = mysql_fetch_array($ result)){ –

+0

是...?什麼警告? – deceze

+0

警告:mysql_fetch_array():提供的參數不是第32行的MY_URL/index.php中的有效MySQL結果資源 –