Проверка XML с помощью API Карт Google - PullRequest
0 голосов
/ 29 сентября 2011

Я играл с API Карт Google последние пару дней.Я дошел до того, что застрял из-за недостатка навыков PHP.После запуска приведенного ниже кода PHP возвращается XML:

<?xml version="1.0"?>
<markers/>

Ссылка, которую я использую: http://www.icliqz.com/Dev/phpsqlsearch_genxml_php.php?latitude=41.782321&longitude=-72.612031&radius=50

Код, с которым я играю:от: http://code.google.com/apis/maps/articles/phpsqlsearch.html

Я использую Dreamweaver для работы над этим проектом.Если есть хороший способ отладки через PHP-код, я был бы очень благодарен.Я пытался погуглить, но я не уверен, что лучше для новичка в PHP.Я проверил, что радиус записей у меня есть в моей базе данных.Все они находятся в пределах 50 миль от координат, с которыми я тестирую.

Код PHP:

<?php
require("phpsqlsearch_dbinfo.php");

// Start XML file, create parent node
$doc = new DOMDocument("1.0");
$node = $doc->createElement("markers");
$parnode = $doc->appendChild($node);

// Opens a connection to a mySQL server
$connection=mysql_connect (localhost, $username, $password);
if (!$connection) {
  die('Not connected : ' . mysql_error());
}

// Set the active mySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
  die ('Can\'t use db : ' . mysql_error());
}

// Select all the rows in the markers table
$query = "SELECT user, latitude, longitude, ( 3959 * acos( cos( radians('%s') ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians('%s') ) + sin( radians('%s') ) * sin( radians( latitude ) ) ) ) AS distance FROM tbl_UserLatLng HAVING distance < '%s' ORDER BY distance LIMIT 0 , 20";
$result = mysql_query($query);
if (!$result) {
  die('Invalid query: ' . mysql_error());
}

header("Content-type: text/xml");

// Iterate through the rows, adding XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
  // ADD TO XML DOCUMENT NODE
  $node = $doc->createElement("marker");
  $newnode = $parnode->appendChild($node);

  $newnode->set_attribute("user", $row['user']);
  $newnode->set_attribute("latitude", $row['latitude']);
  $newnode->set_attribute("longitude", $row['longitude']);
  $newnode->set_Attribute("distance", $row['distance']);
}

echo $doc->saveXML();

?>

Заранее спасибо!

1 Ответ

1 голос
/ 29 сентября 2011

Попробуйте выполнить запрос вручную из оболочки mysql, чтобы увидеть, какие значения отображаются на расстоянии.Похоже, вы не получаете никаких результатов от БД.

SELECT user, latitude, longitude, 
    ( 3959 * acos( cos( radians('%s') ) * cos( radians( latitude ) ) * cos( radians( longitude ) - 
    radians('%s') ) + 
    sin( radians('%s') ) * sin( radians( latitude ) ) ) ) AS distance 
FROM tbl_UserLatLng
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...