2012-03-13 14 views
2
<? 
$query = mysql_query("SELECT * FROM poi_example"); 
while ($row = mysql_fetch_array($query)){ 
$name=$row['name']; 
$lat=$row['lat']; 
$lon=$row['lon']; 
$desc=$row['desc']; 
echo ("addMarker($lat, $lon,'<b>$name</b><br/>$desc');\n"); 
} 
?> 

このコード(エコー)は、HTMLソースコード内のテーブルデータを示しています。テーブルからマーカーを抽出する別の方法です? ありがとうございます。Google Maps API 3 - PHPを使用してMySQL DBからマーカーを抽出する

tutorial & demo page

+0

別の方法で同じことをしたい理由はありますか?この方法でうまくいくなら、 ':)'を使ってください。 – halfer

+0

いいえおい:)私の英語のために申し訳ありません.. – zippo

答えて

3

私はJSONとしてそれらをレンダリングすることを好みます。上記のように、ページ内で行うこともできます。

<?php 
// do database connection here 
// run query to fetch your results 
$rows = array(); 
while ($row = mysql_fetch_array($query)) { 
    $rows[] = $row; 
} 
echo "<script>var items = '".json_encode($rows)."';</script>"; 

itemsの配列は、JavaScriptで繰り返し処理できます。

for (var i = 0; i < items.length; i++) { 
    (function(item) { 
     addMarker(item.lat, item.lon, '<b>' + item.name + '</b><br />' + item.desc); 
    })(items[i]); 
} 

私はあなたのaddMarker()機能は標準のGoogleマップのマーカーを作成します推測。

代わりに、JSON文字列としてエコーするアイテムとしてデータベースからアイテムを取り出し、jQueryを使用してAJAX経由で呼び出すことができます。

だからあなたのPHPスクリプトは、単純に次のようになります。

<?php 
header('Content-Type: application/json'); 
// connect to database 
// do query 
$rows = array(); 
while ($row = mysql_fetch_array($res)) { 
    $rows[] = $row; 
} 
echo json_encode($rows); 
exit; 

そしてあなたのJavaScriptファイル内:

$.getJSON('script.php', function(items) { 
    for (var i = 0; i < items.length; i++) { 
     (function(item) { 
      addMarker(item.lat, item.lon, '<b>' + item.name + '</b><br />' + item.desc); 
     })(items[i]); 
    } 
}); 

・ホープ、このことができます。

関連する問題