Php变量声明错误 - MySQL

时间:2015-06-14 18:30:51

标签: php mysql variables syntax declaration

我是php的新手。我有一个简单的网站循环通过一个mysql数据库,并为每一行绘制多边形。它还为用户在单击多边形时可以看到的每个多边形分配自定义属性(名称)。

当用户点击多边形时,他应该看到变量“bname”的值

当我将bname分配给坐标时,代码可以正常工作:

var bname = ('.$row[coord1].');

当我将bname分配给另一个字符串列时,代码失败:

var bname = ('.$row[name].');

数据库中的所有数据都是文本格式,我怀疑可能是我使用错误的语法从数据库返回字符串值?我需要将bname分配给数据库中的name列。

这是完整的代码:

$findmap= 'SELECT * FROM build2';

if(!$result = $con->query($findmap)){
die('There was an error running the query 
    [' . $con->error . ']');
} else {
while ($row = $result->fetch_assoc()) {

  echo '        
        var polypath = [new google.maps.LatLng('.$row[coord1].'),
                new google.maps.LatLng('.$row[coord2].'),
                new google.maps.LatLng('.$row[coord3].'),
                new google.maps.LatLng('.$row[coord4].'),
                new google.maps.LatLng('.$row[coord5].'),
                new google.maps.LatLng('.$row[coord6].'),
                new google.maps.LatLng('.$row[coord1].')
                ];


        var bname = ('.$row[name].');

        var dxbmap = new google.maps.Polygon({
        custom: bname,
        path:polypath,
        strokeColor:"#0000FF",
        strokeOpacity:0.8,
        strokeWeight:1,
        fillColor:"#0000FF",
        fillOpacity:0.1

        });

        dxbmap.setMap(map);

        google.maps.event.addListener(dxbmap, "click", function() {
        alert(this.custom);

    });

';
}
}
?>

1 个答案:

答案 0 :(得分:1)

您需要在浏览器中检查您的控制台是否存在JS错误,我认为这是您遇到的问题。试试这个

$findmap= 'SELECT * FROM build2';

if(!$result = $con->query($findmap)){
die('There was an error running the query 
    [' . $con->error . ']');
} else {
while ($row = $result->fetch_assoc()) {

  echo '        
        var polypath = [new google.maps.LatLng('.$row[coord1].'),
                new google.maps.LatLng('.$row[coord2].'),
                new google.maps.LatLng('.$row[coord3].'),
                new google.maps.LatLng('.$row[coord4].'),
                new google.maps.LatLng('.$row[coord5].'),
                new google.maps.LatLng('.$row[coord6].'),
                new google.maps.LatLng('.$row[coord1].')
                ];


        var bname = \''.$row[name].'\';

        var dxbmap = new google.maps.Polygon({
        custom: bname,
        path:polypath,
        strokeColor:"#0000FF",
        strokeOpacity:0.8,
        strokeWeight:1,
        fillColor:"#0000FF",
        fillOpacity:0.1

        });

        dxbmap.setMap(map);

        google.maps.event.addListener(dxbmap, "click", function() {
        alert(this.custom);

    });

';
}
}
?>

使用您当前的代码作为控制台日志我认为会显示类似

的内容
  

未捕获的ReferenceError:

括号中没有封装字符串,那是你试图用它们做的吗?