-1

テーブル「stores」に id、store_name、lat、lng の 4 つの列があります。半径 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;



    }

しかし、スクリプトを開始すると、「クエリが空でした」というメッセージが表示されますか?

4

2 に答える 2

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

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

それらの 1 つを取り除きmysql_queryます。

于 2012-11-17T14:57:44.657 に答える
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 />";
}

?>

チュートリアルのリンク。

于 2012-11-17T15:06:38.597 に答える