0
基本上我在與獲得谷歌地圖標記是在我的數據庫地址,當我用PHP做了一個問題:用PHP谷歌地圖/ MySQL的
print codeAddress("example address");
它工作正常,但是,當我在這裏設置它,它甚至不顯示地圖,這裏有人可以幫我解決這個問題嗎?
感謝, Wakeeta
<DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0; padding: 0 }
#map_canvas { height: 100% }
</style>
<script type="text/javascript"
src="http://maps.googleapis.com/maps/api/js?key=AIzaSyAWiB6PqOyqsJJZLmoZ5CFb2IP6sqqhtI8&sensor=false">
</script>
<script type="text/javascript">
var geocoder;
var map;
function initialize() {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
<?php
$dbh=mysql_connect('webdb.uvm.edu','swakita','PASSWORD');
if (!$dbh)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db('SWAKITA', $dbh);
$addressprint = mysql_query("SELECT fldStreet FROM tblLocation");
while ($row = mysql_fetch_row($addressprint)) {
foreach ($row as $field) {
print "codeAddress($field)";
}
}
?>
}
function codeAddress(address) {
geocoder.geocode({ 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="height:90%;top:30px"></div>
</body>
</html>
感謝您的幫助!這對我的數據庫中的第一個地址有效,但是我的foreach語法有可能是錯誤的嗎?我試圖打印出我的數據庫中的每個地址的代碼地址行。 **編輯**它在數據庫中只有一個地址時有效,並且地圖不能再次顯示。 – Wakeeta 2012-03-15 05:48:23
您的foreach聲明是不必要的。 mysql_fetch_row返回一個數組。因爲你只提取一列,所以數組的大小爲1.因此,你可以編寫:'$ row [0]'而不是foreach。我不確定多個地址問題。 – zinzendorf 2012-04-02 19:45:06