2013-02-10 81 views
2

我需要一些帮助与D3和MySQL。以下是我的问题:如何可视化数据从MySQL数据库强制布局的D3工具

我正在使用d3 force定向布局来可视化存储在MySQL中的数据。我现在想用d3将它可视化。就我对d3的了解而言,它需要包含节点和链接的json文件作为输入。我的问题是:如何以指定的格式从d3脚本访问这个MySQL数据库?我想为d3工具提供这种输入。请帮帮我。

{"nodes":[{"name":"Myriel","group":1}, 
      {"name":"Mlle.Baptistine","group":1}, 
                               {"name":"Mme.Hucheloup","group":1}], 
     "links":[{"source":1,"target":0,"value":1}, 
     {"source":2,"target":0,"value":8}, 
      {"source":3,"target":0,"value":10}]} 

回答

2

这里有一篇关于在D3上使用MySQL数据库的博客文章http://www.d3noob.org/2013/02/using-mysql-database-as-source-of-data.html

关键是要调用d3中的数据调用一个php脚本,该脚本以d3预期的格式返回数据。

例如这条线; ...

d3.json("php/data2.php", function(error, data) { 

...是告诉D3以JSON格式获取数据,但它调用PHP脚本,做数据库的查询和返回JSON格式的数据;

这里是它的调用脚本(data2.php);

<?php 
    $username = "homedbuser"; 
    $password = "homedbuser"; 
    $host = "localhost"; 
    $database="homedb"; 

    $server = mysql_connect($host, $username, $password); 
    $connection = mysql_select_db($database, $server); 

    $myquery = " 
SELECT `date`, `close` FROM `data2` 
"; 
    $query = mysql_query($myquery); 

    if (! $myquery) { 
     echo mysql_error(); 
     die; 
    } 

    $data = array(); 

    for ($x = 0; $x < mysql_num_rows($query); $x++) { 
     $data[] = mysql_fetch_assoc($query); 
    } 

    echo json_encode($data);  

    mysql_close($server); 
?> 
+0

thnx ..我只是想知道,将json_encode将返回我所需的格式,我已经提到上述数据。请帮助 – user2058285 2013-02-14 07:00:14

+0

thnx很多d3noob,我可以将我的数据转换成json格式。但我无法从我的d3代码中调用该php脚本。任何人都可以帮我从d3代码中调用这个脚本。 – user2058285 2013-02-16 05:36:33

+0

您是否安装了PHP? (如果你使用的是WAMP,那是肯定的,但如果你只是在本地运行html文件,那会阻止你使用php脚本)。为了测试这个,你可以将你的浏览器指向php文件,它应该直接向浏览器回显数据。 – d3noob 2013-02-18 03:44:46