2012-03-15 2 views
0

기본적으로 내가 할 PHP를 사용하는 경우, 내 데이터베이스에있는 주소에 태그를 구글지도를 받고 문제가 있어요 : 그러나, 그것은 잘 작동Google지도/MySQL을

print codeAddress("example address"); 

을 나는지도를 표시하지 않는다. 여기 누군가가이 문제를 도와 줄 수 있을까? PHP는 $ 필드 변수를 확장 때 따옴표 수 없기 때문에

감사합니다, 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> 

답변

1
print "codeAddress($field)"; 

은 무효 자바 스크립트 코드를 생성합니다. 이렇게하면 Javascript에 치명적인 오류가 발생하여지도가 표시되지 않습니다. 사용해보기 :

print "codeAddress(\"$field\")"; 
+0

도움 주셔서 감사합니다. 그게 내 데이터베이스에 내 첫 주소에 대한 일을하지만 내 foreach 구문이 잘못되었을 가능성이 있습니까? 내 데이터베이스의 각 주소에 대한 코드 주소 줄을 인쇄하려고합니다. ** 편집 ** 데이터베이스에 하나의 주소 만있을 때 작동합니다.지도가 다시 표시되지 않는 것 이상이 있습니다. – Wakeeta

+0

foreach 문을 사용할 필요가 없습니다. mysql_fetch_row는 배열을 리턴한다. 단일 열을 가져 오기만하므로 배열의 크기는 1이됩니다. 따라서 foreach 대신'$ row [0]'을 쓸 수 있습니다. 여러 주소 문제에 대해 잘 모르겠습니다. – zinzendorf