2016-03-30 4 views
0

Im zur Zeit meiner Daten aus einer MySQL-Datenbank mit dieser php bekommen:D3 Javascript Daten von mysql Uncaught Typeerror zieht

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

ich diesen HTML mit der vorherige JSON-Datei dann ausführen, die ich

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

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

Es alles gut geht, kann ich Balkendiagramme erzeugen, Kreisdiagramme usw. Aber sobald ich die 3 fopen, fwrite und fclose Linien mit dieser Zeile:

echo json_encode($data); 

(plus I "mypreviouslygeneratedjson.json" mit der PHP-Datei zu ersetzen, die ich bereits erwähnt)

Sobald ich versuche, dies zu tun, ich einen Fehler in der Konsole:

Uncaught TypeError: Cannot read property 'forEach' of undefined

Was ist hier los? Ich benutze praktisch den gleichen json in beiden Fällen.

+1

Sie haben versucht, die Daten auf der Konsole zu protokollieren? – thatOneGuy

+0

@thisOneGuy, wenn ich die Daten im Inneren der d3.json Konsole loggen bekomme ich nichts. Wenn ich den PHP laufen lasse, erhalte ich die Daten auf der Webseite. – user1823812

+1

Wie geht es mit der Übergabe der Daten an eine Variable und wenn Sie den PHP ausführen, setzen Sie einfach die Variable auf die neuen Daten? Dann werden Sie einfach die d3.json Linie loswerden – thatOneGuy

Antwort

0

Das Problem war, dass die json durch meine PHP-Datei generiert die folgende mysql Warnung darin enthalten:

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

Dies führte meine JSON-Datei mit HTML zu füllen, er unlesbar durch die d3.json machen

Verwandte Themen