与DB连接

时间:2014-01-25 11:16:47

标签: javascript php mysql

我做了你的建议,地图显示正确,但没有标记。也许我犯了一些错误? 代码:

`

mysql_connect("xxx", "xxx", "xxx") or die("Error connecting to database:  ".mysql_error());


mysql_select_db("xxx") or die(mysql_error());


$querz  = "SELECT * FROM markers";
$result = mysql_query($querz)
or die("Query failed");

while ($row = mysql_fetch_array($result)) {
    $lat = "$row[lat]";
    $lng = "$row[lng]";
}

 ?>


<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
 <meta charset="iso-8859-2">
  <title>Simple icons</title>
    <style>
    html, body, #map-canvas {
    height: 600px;
    margin: 0px;
    padding: 0px
     }
   </style>
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
    <script>




function initialize() {
  var mapOptions = {
    zoom: 8,
   center: new google.maps.LatLng(52, 19)
  }
  var map = new google.maps.Map(document.getElementById('map-canvas'),
                            mapOptions);


   var image = '20_blue.png';

  var myLatLng = new google.maps.LatLng(<?php print($lat); ?>,<?php print($lng); ?>);
   var beachMarker = new google.maps.Marker({
  position: myLatLng,
  map: map,
  icon: image
  });
 }

google.maps.event.addDomListener(window, 'load', initialize);

  </script>
 </head>
 <body>
   <div id="map-canvas"></div>
 </body>
/html>`

我的问题:有没有办法从Mysql数据库显示标记而不是使用特定的lat和lng,就像我在上面的代码中所做的那样?怎么样 ?我尝试了谷歌教程,但它有一些错误(我已经问过另一个问题)。

2 个答案:

答案 0 :(得分:1)

您需要一种服务器端语言才能连接到您的数据库(在您的情况下,我建议您使用最简单的PHP)。您可以使用PDO从数据库中选择数据。

修改

你需要在你的javascript代码中编写你的php循环。在这里,您只向地图添加一个标记,即您在查询中选择的最后一个标记。还要确保表格不为空。

你可以这样做:

<script type="text/javascript">
  function initialize() {
    var mapOptions = {
      zoom: 8,
      center: new google.maps.LatLng(52, 19)
    }

    var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

    var image = '20_blue.png';

    <?php while($row = mysql_fetch_array($result)): ?>

    var myLatLng = new google.maps.LatLng(<?php echo $row['lat']; ?>, <?php echo $row['lon']; ?>);
    var beachMarker = new google.maps.Marker({
      position: myLatLng,
      map: map,
      icon: image
    });

    <?php endwhile; ?>
  }

  google.maps.event.addDomListener(window, 'load', initialize);
</script>

答案 1 :(得分:0)

从DB调用lat和long并将它们分配给

$lat
$long

然后你可以像

一样打电话给他们
var myLatLng = new google.maps.LatLng(<?php print($lat); ?>,<?php print($long); ?>);

这只是一个想法,您可以根据自己的需要进行转换。