Я следую этому руководству, когда узнал, что могу не просматриваю ожидаемый результат, потому что не могу просмотреть свои данные в формате xml. Я немного изменил данные конфигурации, не знаю, было ли это причиной неисправности?
<?php
// Get parameters from URL
$center_lat = $_GET["lat"];
$center_lng = $_GET["lng"];
$radius = $_GET["radius"];
// Start XML file, create parent node
$dom = new DOMDocument("1.0");
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node);
// Opens a connection to a mySQL server
$connection=mysql_connect (localhost, 'root', '12345678');
if (!$connection) {
die("Not connected : " . mysql_error());
}
// Set the active mySQL database
$db_selected = mysql_select_db('demo', $connection);
if (!$db_selected) {
die ("Can\'t use db : " . mysql_error());
}
// Search the rows in the markers table
$query = sprintf("SELECT address, name, lat, lng, ( 3959 * acos( cos( radians('%s') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('%s') ) + sin( radians('%s') ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < '%s' ORDER BY distance LIMIT 0 , 20",
mysql_real_escape_string($center_lat),
mysql_real_escape_string($center_lng),
mysql_real_escape_string($center_lat),
mysql_real_escape_string($radius));
$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)){
$node = $dom->createElement("marker");
$newnode = $parnode->appendChild($node);
$newnode->setAttribute("name", $row['name']);
$newnode->setAttribute("address", $row['address']);
$newnode->setAttribute("lat", $row['lat']);
$newnode->setAttribute("lng", $row['lng']);
$newnode->setAttribute("distance", $row['distance']);
}
echo $dom->saveXML();
?>
Я ожидаю получить аналогичный результат, подобный этому http://gmaps-samples.googlecode.com/svn/trunk/articles-phpsqlsearch/phpsqlsearch_expectedoutput.xml, но ничего не появляется. Кажется, что у него нет данных, но я уже импортировал данные в свой mysql.
var_dump
строку $, чтобы увидеть, есть ли в ней содержимое - person Gordon   schedule 04.07.2011@
из начала @mysql_fetch_assoc (поскольку @ подавляет ошибки), а затем внутри этого циклаwhile
добавьтеecho '<pre>'.print_r($row,true).'</pre>';
. запрос фактически возвращает какие-либо данные. Также убедитесь, что широта/долгота/радиус заданы как переменные $_GET в URL-адресе, например. page.php?lat=27.3748&lng=127.7475&radius=50 - person Benno   schedule 04.07.2011Undefined index: lat in C:\xampp\htdocs\demo\map\phpsqlsearch_genxml.php on line 4
три из этой ошибки. - person woninana   schedule 05.07.2011phpsqlsearch_genxml.php
), вам необходимо указать параметры $_GET, потому что вы передаете переменные $_GET (строки 4-6) поисковому запросу (строка 27- 30). Итак, Э.Г. Если вы открываете эту страницу по адресу/demo/map/phpsqlsearch_genxml.php
, вместо этого вам нужно загрузить этот URL-адрес:/demo/map/phpsqlsearch_genxml.php?lat=127.4364636&lng=26.23523&radius=50
(за исключением изменения других параметров широты и долготы, которые находятся в вашей базе данных). НАПРИМЕР. $_GET['радиус'] здесь равен 50. Затем будут установлены параметры широты, длины и радиуса, которые ваш запрос использует для возврата информации. - person Benno   schedule 05.07.2011