8

MySQLで視覚化したいデータベースがありますD3.JS。そのためには、まずparseデータをJSONフォーマットしてから、データベースからデータを取得して視覚化する基本的なコードを記述しますD3.JS。周りを見回しましたが、初心者なので欲しいものが見つかりませんでしたD3.JS

どうすればそれを達成できますか?助けや手がかりをいただければ幸いです。

4

6 に答える 6

13

以下は、D3 コードを含む HTML ファイルからアクセス可能なファイル (「getdata.php」としましょう) としてどこかに保存できる php スクリプトです。呼び出されると、MySQL データベースからのデータが json 形式で返されます (データベース サーバーがドメイン外にない限り)。

<?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 ( ! $query ) {
        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);
?>

明らかに、ユーザー名、パスワード、ホスト、およびデータベースの適切な詳細を入力する必要があります。また、探しているものが返されるように、データに適切なクエリを含める必要があります。次のようなものです (これは推測にすぎません)。

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

tablenameと呼ばれる列で呼び出さdateTimeTakenれたテーブルからタイムスタンプと値のリストを返しますreading。次に、json ファイルを読み込むときは、json を読み込むコードに次の構文を使用します。

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

うまくいけば、それはあなたが探しているものに近いです. 私はそれをローカルでテストしましたが、すべてうまくいくようです..

シンプルな WAMP サーバーのローカル インストールと、d3.js からの MySQL データベースへのクエリのセットアップについて説明する投稿をまとめました。 -as-source-of-data.html

これは、d3 ビジュアライゼーションでの MySQL データベースへのアクセスとほぼ同じ状況です。

于 2013-03-13T17:07:10.227 に答える
7

簡単な答え: Web サービス。

基本的に、json データ (たとえば) を返してd3.json()呼び出しに接続する Web サービスを作成する必要があります。

Python を使用して拡張をすばやく行うか、 web2pySimpleHTTPServerなどの Web サービス フレームワークを使用することをお勧めします。

于 2013-03-13T13:52:58.913 に答える
1

私の知る限り、javascriptがMySQLデータベースに直接接続できるようにするライブラリはありません。代わりに、Web サービスを介してデータを公開することを検討し (任意の数のサーバー側テクノロジ (ASP.Net、PHP、Ruby on Rails など) を使用)、応答でデータを JSON にシリアル化します。

于 2013-03-13T12:05:37.087 に答える
1

I have faced problem myself with json_encode, in the end I wrote my own code instead of json_encode. Just you need to set the sql and yoru connection info. Hope you find it useful.

$conn = new mysqli(DB_Host, DB_User, DB_Password, DB_Name) or die("Connection failed: " . $conn->connect_error);
$sql = "select  AID as id, deDate_Value as date, nterTime AS counter 
        from xxxx";

//Get the Date and store it in array
$records = array();
if ( $result=mysqli_query($conn,$sql) )
    while ( $obj=mysqli_fetch_object($result) )
        $records[] = $obj;

//echo in json format on screen       
echo "[";
$comma_1 = "";
foreach($records as $obj)
{
    echo $comma_1."{";
    $comma_2 = "";
    foreach($obj as $key => $value)
    {
        echo $comma_2.'"'.$key."\": \"". $value . "\"";
        $comma_2 = ", ";
    }
    echo "}";
    $comma_1 = ", \n";
}
于 2015-08-13T19:23:19.280 に答える
0

d3.json を機能させるには、次のように呼び出す必要がありました (私の PHP ファイルは JSON データを生成します)。

d3.json("InventoryData.php").then(function(data){
  console.log(data);
});
于 2019-02-06T01:36:37.627 に答える