10375


はじめまして!!

現在、MySQLに格納されている緯度・経度のデータを取り出し、Google MapのXMLフォーマットにDOMを使用し出力したいと考えております。

そこで以下のコードを書いてみたのですが、上手くいきません。

もし何かご存知の方は、是非ご教授ください！！

ちなみにデータベースを介さず、単純に以下のコードにデータを打ち込むやり方だと上手くいったので、問題はデータベース絡みの部分だと考えています。

よろしくお願い申し上げます。

[code]

    <?php
    
    // インスタンスの生成
    $dom = new DomDocument('1.0', 'UTF-8');
    // prefs ノードを追加
    $root = $dom->appendChild($dom->createElement('root'));
    $MarkerData = $root->appendChild($dom->createElement('MarkerData'));
    
        try
        {
    // データベースへのアクセス・データの取り出し       
            $dsn='mysql:dbname=略;host= 略;charset=utf8';
            $user='略';
            $password='略';
            $dbh=new PDO($dsn,$user,$password);
            $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    
            $sql='SELECT lat, lng, FROM maps ';
            $stmt=$dbh->prepare($sql);
            $stmt->execute();
    
            while($rec=$stmt->fetch(PDO::FETCH_ASSOC))
            {
    
    $marker = $MarkerData->appendChild($dom->createElement('marker'));
    $marker->setAttribute('lat', $rec['lat']);
    $marker->setAttribute('lng', $rec['lng']);
    $marker->appendChild($dom->createElement('icon', 'atlas'));
    
        }
        $dbh=null;
        }catch(PDOException $e)
        {
            die("No!");
        }
    
    //XML を整形（改行・字下げ）して出力
    $dom->formatOutput = true;
    //保存（上書き）
    $dom->save('maps.xml');
    
    ?>
    
[/code]

Google MapsでのXMLフォーマットは以下のようになります。

[code]

    <?xml version="1.0" encoding="utf-8"?>
    <root>
      <MarkerData>
    //①
        <marker lat="35.507456" lng="139.61758499999996">
          <icon>atlas</icon>
        </marker>
    //② ①~②を繰り返すことで複数表示
    
      </MarkerData>
    </root>
    
[/code]


CC BY-SA 3.0
2015-05-19T11:05:25.957
10374
2015-05-19T12:21:17.060
9722
question
php mysql google-maps xml
MySQLのデータを、GoogleMapのXMLフォーマットに出力したい!


SQLに問題があります:

[code]

    $sql='SELECT lat, lng, FROM maps ';
                         ^
    
[/code]

`FROM`の前のカンマを除いてください。

[code]

    $sql='SELECT lat, lng FROM maps ';
    
[/code]

* * *

`try` ~ `catch`を消せば詳細なエラーが得られます:

[code]

    PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1 near "FROM": syntax error'
    
[/code]


CC BY-SA 3.0
2015-05-19T12:11:45.190
10375
2015-05-19T12:21:17.060
2015-05-19T12:21:17.060
62
62
10374
answer