2016-03-30 3 views
0

Im в настоящее время получать мои данные из базы данных MySQL с помощью этого PHP:D3 Javascript вытягивать данные тузды неперехваченного TypeError

<?php 
    $username = "*****"; 
    $password = "******"; 
    $host = "localhost"; 
    $database="db"; 

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

    $myquery = " 
SELECT `this`, `that` FROM `table` 
"; 
    $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); 
    } 

    $fp = fopen('empdata.json', 'w'); 
    fwrite($fp, json_encode($data)); 
    fclose($fp);  

    mysql_close($server); 
?> 

Я тогда запустить этот HTML с предыдущим JSon файлом, который я создал

d3.json("mypreviouslygeneratedjson.json", function (error, data) { 

    data.forEach(function (d) 
    { 
     ... 
    } 
... 

Это все идет хорошо, я могу генерировать гистограммы, круговые диаграммы и т.д. Но как только я заменить 3 Еорепа, FWRITE и fclose линии с этой линией:

echo json_encode($data); 

(плюс я заменить «mypreviouslygeneratedjson.json» с PHP файла, который я упоминал ранее)

Как только я пытаюсь сделать это, я получаю сообщение об ошибке в консоли:

Uncaught TypeError: Cannot read property 'forEach' of undefined

Что такое здесь? Im практически использовал тот же json в обоих случаях.

+1

вы пробовали консоль регистрации данных? – thatOneGuy

+0

@thisOneGuy, когда я консоль регистрирую данные внутри d3.json, я ничего не получаю. Когда я запускаю php, я получаю данные, отобранные на веб-странице. – user1823812

+1

как передать данные переменной, а когда вы запустите php, просто установите переменную в новые данные? Тогда просто избавьтесь от линии d3.json – thatOneGuy

ответ

0

Проблема заключалась в том, что JSON генерируется мой файл PHP включает следующее предупреждение MySQL в нем:

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead

Это привело к заполнению мой файл JSON с HTML, что делает его нечитаемым по d3.json

Смежные вопросы