如何在d3工具的强制布局中可视化来自mysql数据库的数据

时间:2013-02-10 06:44:34

标签: d3.js force-layout

我需要d3和MySQL的一些帮助。以下是我的问题:

我正在使用d3强制定向布局来可视化存储在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}]}

1 个答案:

答案 0 :(得分:3)

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

关键是让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);
?>