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).

Antworten auf die Frage(3)

Ihre Antwort auf die Frage