从Mysql数据库生成标记

时间:2014-03-18 12:01:02

标签: javascript php arrays

我有一系列标记编码到网页中,我用它们以

的形式为谷歌地图生成标记
generateMarkers([['Location', lat, long], ['Location2', lat2, long2],['Location3', lat3, long]3]);

所以现在我正在尝试从数据库中检索标记位置,所以我尝试使用下面的代码来执行此操作

getmkrs(
  <?php
        $db_con = mysql_connect("localhost",'root','');
        mysql_select_db("db_name",$db_con);
        $query_db = "Select * From table_name";
        $result = mysql_query($query_db, $db_con);
        $joiner = '';
    ?>

var_markers = [<?php while($row = mysql_fetch_assoc($result)):?>
<?= $joiner ?>
[<?= $addslashes($row['Row1']) ?>, <?= $row['Row2'] ?>, <?= $row['Row3'] ?>                     ]       
<?$joiner = ','?>
<?php endwhile; ?>];

);

但最终页面显示为空白,甚至地图都没有出现。我正在尝试复制上面编码到网页中的数组。所以我的问题是如何使用数据库中的数据高效生成标记

1 个答案:

答案 0 :(得分:0)

对于上帝的爱,不要在Javascript代码中手工拼凑JSON。在PHP中创建一个理智的数据结构,并使用json_encode进行编码:

<?php
    $db_con = mysql_connect("localhost", 'root', '');
    mysql_select_db("db_name", $db_con);
    $query_db = "SELECT * FROM table_name";
    $result = mysql_query($query_db, $db_con);

    $markers = array();
    while ($row = mysql_fetch_assoc($result)) {
        $markers[] = array($row['Row1'], $row['Row2'], $row['Row3']);
    }
?>
<script>
    var markers = <?php echo json_encode($markers); ?>;
    generateMarkers(markers);
</script>