2013-03-13 2 views
6

D3.JS에서 시각화하고 싶은 데이터베이스가 MySQL입니다. 그러기 위해서는 우선 parse 형식의 데이터를 JSON 형식으로 만들고 데이터베이스에서 데이터를 가져오고 D3.JS으로 시각화하는 기본 코드를 작성해야합니다. 나는 주위를 둘러 본다. 그러나 내가 신입생 인 이래로 내가 원하는 것을 발견 할 수 없었다. D3.JS.mysql 데이터베이스에서 데이터를 가져 와서 D3.JS로 시각화하는 방법은 무엇입니까?

어떻게하면됩니까? 어떤 도움이나 단서를 높이 평가.

답변

1

AFAIK 자바 스크립트가 MySQL 데이터베이스에 직접 연결할 수있는 라이브러리가 없습니다. 대신 웹 서비스 (ASP.Net, PHP, Ruby on Rails 등 다양한 서버 측 기술 사용)를 통해 데이터를 노출하고 응답시 JSON에 데이터를 직렬화하십시오.

+0

무엇부터 시작 하시겠습니까? – BaRd

+2

이것이 의미가 없다면 MySQL에서 수동으로 .csv 파일로 데이터를 내보내거나 (phpmysqladmin에이 옵션이 있거나 명령 줄에서 수행 할 수 있음) D3에 데이터를 직접로드 할 수 있습니다. CSV 로딩 도구. 또는 탭을 구분 기호로 사용하여 내보내는 경우 D3 "tsv"가져 오기를 사용하십시오.) 역동적 인 것은 아니지만, 완전히 새로운 프레임 워크를 배우기 위해 뒤로 물러나는 것보다 훨씬 빨리 일어나서 실행할 수 있습니다. –

+1

@ChrisWilson 데이터베이스에 직접 액세스 할 수 없으며이를 실시간 시각화에 사용합니다. – BaRd

4

짧은 답변 : 웹 서비스.

기본적으로 d3.json() 호출에 연결할 json 데이터를 반환하는 웹 서비스를 만들고 싶습니다.

파이썬을 사용하여 SimpleHTTPServer을 빠르게 확장하거나 web2py과 같은 웹 서비스 프레임 워크를 사용하는 것이 좋습니다.

9

다음은 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); 
?> 

분명히 사용자 이름, 암호, 호스트 및 데이터베이스에 대한 적절한 세부 정보를 입력해야합니다. 또한 원하는 데이터를 반환하도록 데이터에 대한 적절한 쿼리를 포함해야합니다. 의 라인을 따라 뭔가 (그리고 이것은 단지 추측이다); 열이 tablename라는 테이블에서 타임 스탬프와 값 목록을 반환

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

dateTimeTakenreading했다. 그런 다음 json 파일을 읽을 때 json에서 읽는 코드에 대해 다음 구문을 사용합니다.

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

바라건대 그게 당신이 찾고있는 것입니다. 나는 그것을 로컬에서 테스트했고 모두 작동하는 것 같습니다.

간단한 WAMP 서버를 로컬 설치하고 d3.js에서 MySQL 데이터베이스에 대한 쿼리를 설정하는 게시물을 함께 작성했습니다 http://www.d3noob.org/2013/02/using-mysql-database-as-source-of-data.html

이 꽤 많이 나는로 json_encode 대신 내 자신의 코드를 작성 결국 내가로 json_encode에 문제 나 자신을 직면 Accessing MySQL database in d3 visualization

1

, 같은 상황이다. 그냥 SQL과 Yoru 연결 정보를 설정해야합니다. 희망 당신은 그것을 유용하게 찾을 수 있습니다.

$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"; 
} 
관련 문제