d3从mysql数据库导入数据返回" undefined"

时间:2013-11-27 07:04:34

标签: javascript php mysql json d3.js

我正在制作一张地图,我有一个巨大的数据集(差不多有400万条记录),所以我将它存储在一个mysql数据库中,我只查询我真正需要制作地图的数据。
我有一个pend.php文件,以json格式返回数据,我想在d3中使用它

d3.json("data/pend.php", function(error, data) {
  console.log(data);
})

但我只是“未定义” 如果我直接在浏览器中运行pend.php,我会正确格式化json。这里是pend.php代码:

<?php
$con=mysqli_connect('localhost', 'root', 'root', 'commuting');
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query($con, "SELECT ComResId,ComLavId,NumSum
FROM itaSmall"); 

$number = mysqli_num_rows($result);
$i = 1;
echo "["; 
while($row=mysqli_fetch_array($result))  
    {  
        echo "{'id':'" . $row['ComResId'] . "','des'" . $row['ComLavId'] . "','n':'" . $row['NumSum'] . "'}";  
        if ($i < $number)
           {
               echo ',';
           }
        $i ++;
    }  
echo "]"; 

mysqli_close($con);
?>

以及json的样本:

[{'id':'1001','des':'1001','n':'469'},{'id':'1001','des':'1004','n':'1'},...

知道出了什么问题吗?
感谢
丹尼尔

2 个答案:

答案 0 :(得分:0)

我认为参数“error”在该函数中无效,请尝试:

d3.json("data/pend.php", function(data) {
  console.log(data);
})

如果您需要获取错误功能,请尝试:

d3.json("data/pend.php", function(data) {
   console.log(data);
}).fail(function() {
   console.log( "error" );
})

OR:

d3.json("data/pend.php", function(data) {
    console.log(data);
}).error(function() {
    console.log( "error" );
})

答案 1 :(得分:0)

解决....
我使用单引号(而不是双引号)将字符串换入json !!!