Я следую учебник о том, как сделать использование Карт Google в качестве магазина локатора here, однако, моя веб-страница выводит сообщение об ошибке XML:
Что означает ошибка? как я его разрешу?
Я объявил GLOBALS в файле .php, который имеет следующую информацию. Этот файл автоматически вызывается в моем require()
$GLOBALS['SRVR'] ='myServer';
$GLOBALS['USER'] ='myUID';
$GLOBALS['PASS'] ='myPASSWORD';
, а затем я поставил код, как показано в руководстве по функции, и я вызываю функцию. Я также преобразовал mysql
в mysqli
. Я также создал таблицу с именем markers
, как в учебнике.
require("indexhead.php");
function MaptheStore() //I plan to add an argument later to populate stores
{
// 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);
// Set the active mySQL database
$db_selected = mysqli_select_db($GLOBALS['con'], 'myDB');
if (!$db_selected) {
die (mysqli_error($db_selected));
}
// 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 myDB.markers HAVING distance < '%s' ORDER BY distance LIMIT 0 , 20",
mysqli_real_escape_string($GLOBALS['con'],$center_lat),
mysqli_real_escape_string($GLOBALS['con'],$center_lng),
mysqli_real_escape_string($GLOBALS['con'],$center_lat),
mysqli_real_escape_string($GLOBALS['con'],$radius));
$result = mysqli_query($GLOBALS['con'],$query);
if (!$result) {
die("Invalid query: " . mysqli_error($result));
}
header("Content-type: text/xml");
// Iterate through the rows, adding XML nodes for each
while ($row = @mysqli_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']);
}
return $dom->saveXML();
}
echo MapTheStore();
Наконец, я вставил это для имитации $ _GET [] (?lat=37&lng=-122&radius=25
), чтобы проверить страницу, как в учебнике.
Является ли ошибка, вызванная тем, что я конвертирую код в mysqli? как я его разрешу? что именно вызывает ошибку?
EDIT: Вот моя структура таблицы для markers
и вот его содержимое ...
EDIT: исходный текст веб-страницы, имеет этот вывод, в основном только мои заголовки:
Как выглядит вывод? Похоже, в XML есть несколько атрибутов rel = "". – geocodezip
Это изображение красного цвета. Чтобы тот человек, который подал заявку, почему нисходящий? –
Красное изображение не является выходным, сделайте источник просмотра на этой странице и добавьте это к вашему вопросу (и «рендеринг до первой ошибки также будет полезен). – geocodezip