Запрос Finder Store Google Maps не возвращается должным образом - PullRequest
0 голосов
/ 18 мая 2011

Прежде всего я должен сообщить вам, что, хотя я и являюсь опытным разработчиком рельсов, я довольно увлечен PHP и сырым SQL. Я пытаюсь создать приложение для поиска магазинов, используя этот учебник и этот учебник . Я встречаюсь

Это код, который я использую для своего запроса (с именами столбцов в собственной базе данных)

$user_lat = $_GET["lat"];
$user_lng = $_GET["lng"];
$radius = $_GET["radius"];

$query = "SELECT 'Address','LocName','Latitude','Longitude', ( 3959 * acos( cos( radians($user_lat) ) * cos( radians( Latitude ) ) * cos( radians( Longitude ) - radians($user_lng) ) + sin( radians($user_lat) ) * sin( radians( Latitude ) ) ) ) AS distance FROM Locations ORDER BY distance";

И я возвращаю результаты с этим (просто в качестве теста):

$result = mysql_query($query);
if (!$result) {
  die("Invalid query: " . mysql_error());
}

$num=mysql_numrows($result);

mysql_close();
?>
<table border="0" cellspacing="2" cellpadding="2">
<tr>
<th><font face="Arial, Helvetica, sans-serif">Name</font></th>
<th><font face="Arial, Helvetica, sans-serif">Distance</font></th>
<th><font face="Arial, Helvetica, sans-serif">Address</font></th>
</tr>

<?php
while ($row = mysql_fetch_assoc($result)) {
$f1=mysql_result($result,$i,"LocName");
$f2=mysql_result($result,$i,"distance");
$f3=mysql_result($result,$i,"Address");
?>

<tr>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f1; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f2 ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font></td>
</tr>

<?php
$i++;
}
?>

Однако, когда я ухожу, я получаю следующие результаты: findstore.php? Lat = 33.98 & lng = -118.42

Name    Distance    Address
LocName     0.65415504532801    Address
LocName     0.65415504532801    Address
LocName     0.666819627384179   Address
LocName     0.923277344110443   Address
LocName     2.32751232712236    Address
LocName     2.33924574433009    Address

и т.д.

очевидно, что Расстояние рассчитывается правильно, но у меня возникают проблемы с получением адреса и имени местоположения для каждого.

Что я делаю не так?

Спасибо!

1 Ответ

1 голос
/ 18 мая 2011

Попробуйте заменить одинарные кавычки в вашем запросе обратными чертами.

т.е.:

$query = "SELECT `Address`,`LocName`,`Latitude`,`Longitude`, ( 3959 * acos( cos( radians($user_lat) ) * cos( radians( Latitude ) ) * cos( radians( Longitude ) - radians($user_lng) ) + sin( radians($user_lat) ) * sin( radians( Latitude ) ) ) ) AS distance FROM Locations ORDER BY distance";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...