2016-03-17 7 views
0

Я пытаюсь создать график MSline в диаграммах Fusion с использованием JSON и php для импорта моих данных из моей базы данных, но у меня возникают проблемы с отображением данных, что означает, что диаграмма не отображается правильно ,Графики Fusion - график с использованием JSON с базой данных

Посмотреть выход здесь: www.waflfootyfacts.net/charttest2.php

Мой пример базы данных, как это;

|Team |RoundNo | Total 
|East Perth | R1 | 41 
|East Fremantle | R1 | 96 
|East Perth | R2 | 109 
|Swan Districts | R2 | 96 
|East Perth | R3 | 115 
|Subiaco | R3 | 51 

Что мне нужно диаграмму, чтобы произвести это RoundNo на оси х и два dataseries один для «East Perth» со значениями 41, 109 и 115, и второй серии под названием «Соперник» со значениями 96, 96 и 51.

Моя диаграмма генерирует, но не вычисляет серию правильно.

Мой код

// Form the SQL query 

    $strQueryCategories = "SELECT RoundNo FROM MatchDetails WHERE (Team = 'East Perth' OR Opponent = 'East Perth') AND Season = 2015 AND RoundNo IN ('R1', 'R2', 'R3')"; 

$resultCategories = $dbhandle->query($strQueryCategories)or exit("Error code ({$dbhandle->errno}): {$dbhandle->error}"); 

$strQueryData = "SELECT Team, RoundNo, Total FROM MatchDetails WHERE (Team = 'East Perth' OR Opponent = 'East Perth') AND Season = 2015 AND RoundNo IN ('R1', 'R2', 'R3')"; 


$resultData = $dbhandle->query($strQueryData)or exit("Error code ({$dbhandle->errno}): {$dbhandle->error}"); 

if ($resultData) { 

    $arrData = array(
     "chart" => array(
      "caption" => "East Perth in 2015", 
      "subcaption" => "Scores For & Against", 
      "theme" => "fint" 
     ) 
    ); 

    $arrData["categories"] = array(array("category" => array())); 


    if ($resultCategories) { 
     $controlBreakValue = ""; 
     while ($row = mysqli_fetch_array($resultCategories)) { 
      if ($controlBreakValue != $row["RoundNo"]) { 
       $controlBreakValue = $row["RoundNo"]; 
       array_push($arrData["categories"][0]["category"], array("label" => $controlBreakValue)); 
       $controlBreakValue == ""; 
      } 
     } 
    } 


    $arrData["dataset"] = array(); 
    $i = 0; 
    if ($resultData) { 
     $controlBreakValue = ""; 
     while ($row = mysqli_fetch_array($resultData)) { 
      if ($controlBreakValue != $row["Team"]) { 
       $controlBreakValue = $row["Team"]; 
       array_push($arrData["dataset"], array("seriesname" => $controlBreakValue, "data" => array(array("value" => $row["Total"])))); 
       $controlBreakValue == ""; 
       $i++; 
        } 
      array_push($arrData["dataset"][$i - 1]["data"], array("value" => $row["Total"])); 

       } 
      } 
    } 

$jsonEncodedData = json_encode($arrData); 

$dbhandle->close(); 

echo $jsonEncodedData; 

?> 

<html> 


    <body> 
     <?php 

     $columnChart = new FusionCharts("msline", "" , 300, 300, "chart-1", "json", $jsonEncodedData); 

      $columnChart->render(); 

     ?> 

     <div id="chart-1"><!-- Fusion Charts will render here--></div> 

    </body> 

</html> 
+0

Проблема не с графиком, а с вашей логикой. Из реализации вы создали 3 серии вместо двух. Сначала попробуйте создать структуру данных вручную, а затем сопоставить свою логику. – pallabB

+0

спасибо pallabB - Я сделал это уже и не могу заставить его работать, как будто я хочу это сделать. Я отредактировал мой запрос и код выше, не повезло - я основал его на примере «Factory» на графиках фьюжн – waflfootyfacts

+0

Вот как это должно выглядеть - http://jsfiddle.net/BQUw4/61/ – waflfootyfacts

ответ

0

Все отсортирован - в конечном итоге не быть моя ошибка, но PHP обертка при условии термоядерных диаграмм было неправильно - они послали мне новый и это сработало!