Я пытаюсь создать график 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>
Проблема не с графиком, а с вашей логикой. Из реализации вы создали 3 серии вместо двух. Сначала попробуйте создать структуру данных вручную, а затем сопоставить свою логику. – pallabB
спасибо pallabB - Я сделал это уже и не могу заставить его работать, как будто я хочу это сделать. Я отредактировал мой запрос и код выше, не повезло - я основал его на примере «Factory» на графиках фьюжн – waflfootyfacts
Вот как это должно выглядеть - http://jsfiddle.net/BQUw4/61/ – waflfootyfacts