Konvertieren Sie die MySQL-Ergebnismenge in ein (Name, Daten-) Objekt, das in HighCharts eingespeist werden soll
ich benutzeHighCharts Balkendiagramm um daten aus mysql resultset in ein bargraph zu zeichnen.
Jetzt ist das Resultset meiner Abfrage wie folgt:
Name Expense
-----------------
July 700.0000
August 450.0000
September 1700.0000
Dasseries
Für die Eigenschaften von HighCharts sind Daten im folgenden Format erforderlich, um das Diagramm darstellen zu können
[
{name:"July",data:[700.0000]},
{name:"August",data:[450.0000]},
{name:"September",data:[1700.0000]}
]
Also überlegte ich, meine Ergebnismenge mithilfe von in ein JSON-Objekt umzuwandelnjson_encode($row)
. Aber ich habe die folgende Ausgabe bekommen:
[{"name":"July","data":"700.0000"},
{"name":"August","data":"450.0000"},
{"name":"September","data":"1700.0000"}]
Zweifel:
Gibt es eine Möglichkeit, die Ergebnismenge in genau das Format zu konvertieren, das für die series-Eigenschaft von HighCharts erforderlich ist?Kann ich auch ein im PHP-Block erstelltes Objekt direkt in das Javascript einbinden? Angenommen, ich erstelle ein Objekt$jsonNameData
aus meiner Ergebnismenge. Dann kann ich es im Javascript als verwenden
series: <? echo $jsonNameData ?>
BEARBEITEN:
Ich konnte Q1 folgendermaßen lösen:
$count = 0;
$strSeries = "[";
while($r = mysql_fetch_assoc($result)) {
if($count == 0){
$strSeries .= "{name:'" . $r['name'] . "',";
$strSeries .= "data:[" . $r['data'] . ']}';
$count = 1;
}
else {
$strSeries .= ",{name:'" . $r['name'] . "',";
$strSeries .= "data:[" . $r['data'] . ']}';
}
$rows[] = $r;
}
$strSeries .= "]";
Habe die gewünschte Zeichenfolge in$strSeries
.
Jetzt ist das Problem die zweite Frage. Ich habe den Wert von zugewiesen$strSeries
zu einer Variablen in Javascript, aber wenn ich diese Variable als
series: variableName
Das Diagramm wird nicht richtig dargestellt, obwohl die Variable den richtigen Wert hat (durch Warnung geprüft).