在d3可视化中访问MySQL数据库

4
我需要在d3和MySQL方面寻求一些帮助。以下是我的问题:
我有存储在MySQL中的数据(例如:关键字及其频率)。现在我想使用d3对其进行可视化。据我所知,d3需要json文件作为输入。我的问题是:如何从d3脚本中访问此MySQL数据库?我能想到的一种方法是:
1. 使用Python连接数据库并将数据转换为json格式。将其保存在某个.json文件中。 2. 在d3中读取此json文件作为输入并在可视化中使用它。
除了这种方法之外,是否有其他方法可以直接使用d3将MySQL中的数据转换为.json格式?我们能否从d3连接到MySQL并读取数据?
非常感谢!
3个回答

6
以下是一个php脚本,您应该能够将其保存在某个文件中(比方说称之为“getdata.php”),并从包含D3代码的HTML文件中访问它。当调用时,它将以json格式返回您的MySQL数据库中的数据(只要数据库服务器不在您的域外)。
<?php
    $username = "******"; 
    $password = "******";   
    $host = "******";
    $database="***dbase_name***";

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

    $myquery = "
    query here
    ";

    $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);
?>

显然,您需要输入适当的用户名、密码、主机和数据库详细信息。您还需要包括一个适当的查询来获取“dateTimeTaken”和“reading”的数据。以下是一个可能的示例:

SELECT `dateTimeTaken`, `reading` FROM `tablename`

当您读取json文件时,可以使用以下语法来读取您的json文件:

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

希望这个很接近你所需要的内容。我已经在本地测试过,看起来一切都正常。
我写了一篇文章,介绍如何在本地安装一个简单的WAMP服务器,并设置从MySQL数据库中查询d3.js的数据。文章链接在这里:http://www.d3noob.org/2013/02/using-mysql-database-as-source-of-data.html

1

d3 是一个运行在客户端的 JavaScript 库,而 MySQL 数据库则应该运行在服务器端。
d3 无法连接到 MySQL 数据库,更别说转换为 JSON 格式了。你认为可能的方式(步骤1和2)就是你应该做的。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接