2017-08-20 6 views
1
私は、MySQLのデータを利用してウェブサイトでのGoogleマップを実装しようとしていた

からXMLを生成するときに属性を解析するが、エラーはPHP

このページには、次のエラーが含まれ、このエラーになってしまった:

18行目の1行目のエラー:属性名の解析エラー

以下は、最初のエラーまでのページのレンダリングです。以下は

が提供するコードです:https://developers.google.com/maps/documentation/javascript/mysql-to-maps

が、私はエラーの原因となることだろうか知っているかもしれませんか?

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

function parseToXML($htmlStr) 
{ 
$xmlStr=str_replace('<','&lt;',$htmlStr); 
$xmlStr=str_replace('>','&gt;',$xmlStr); 
$xmlStr=str_replace('"','&quot;',$xmlStr); 
$xmlStr=str_replace("'",'&#39;',$xmlStr); 
$xmlStr=str_replace("&",'&amp;',$xmlStr); 
return $xmlStr; 
} 

// 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 * FROM markers WHERE 1"; 
$result = mysql_query($query); 
if (!$result) { 
    die('Invalid query: ' . mysql_error()); 
} 

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

// Start XML file, echo parent node 
echo '<markers>'; 

// Iterate through the rows, printing XML nodes for each 
while ($row = @mysql_fetch_assoc($result)){ 
    // Add to XML document node 
    echo '<marker '; 
    echo 'id="' . $ind . '" '; 
    echo 'name="' . parseToXML($row['name']) . '" '; 
    echo 'address="' . parseToXML($row['address']) . '" '; 
    echo 'lat="' . $row['lat'] . '" '; 
    echo 'lng="' . $row['lng'] . '" '; 
    echo 'type="' . $row['type'] . '" '; 
    echo '/>'; 
} 

// End XML file 
echo '</markers>'; 

?> 

答えて

1

例が間違っているようです。いずれの場合も

echo 'id="' . $ind . '" '; 

echo 'id="' . $row['id'] . '" '; 

であるべき(つまり、データベースがエラーを投げているかどうかを確認するためにmysql_fetch_assocコールからエラー抑制を削除してみてください失敗。すなわち@を削除)

何起こっているのはこれです。あなたは、XML文書を出力している

、文書がレンダリングされている - しかし、あなたは、列18における第1ライン上の

エラーを取得:XMLがで不正な形式れるため、エラーが

属性名を解析しますname attribute - これは、XML出力にほぼ間違いなくPHPエラーがあることを示しています。

<markers> 
    <marker id="Notice: Undefined variable: "id" in ~\whatever\kml.php on line blah blah blah 
" name="foo" address="bar" ... />} 

あなたは、またはほとんどのブラウザで「視聴ソース」でカールまたは類似経由でファイルを呼び出すことによってこれを確認することができます。

最後にそうでない場合は、開かれているphpタグの直後にファイルの上部にあるエラー報告を有効にしてください。

<?php 
ini_set('display_errors', 1); 
error_reporting(~0); 

次に、スクリプトの実際の出力を再度確認します。