fusionCharts данные из базы данных в диаграммах

Я пытаюсь получить данные из моей базы данных в диаграмму. Графики, которые я использую, взяты из фьюжн-диаграмм. Если я печатаю row_cnt, они дают мне правильную информацию, но в таблице это дает мне неправильную / нет информации.

$dbhandle = new mysqli($hostdb, $userdb, $passdb, $namedb);

if ($dbhandle->connect_error) {
exit("There was an error with your connection: ".$dbhandle->connect_error);
}
?>
<html>
<head>
<title>FusionCharts XT - Column 2D Chart - Data from a database</title>
<script src="includes/fusioncharts.js"></script>
<script src="includes/fusioncharts.charts.js"></script>
</head>
<body>
<?php
$result = $dbhandle->query("SELECT * FROM email");
$result2 = $dbhandle->query("SELECT * FROM email WHERE status='1'");
$result3 = $dbhandle->query("SELECT * FROM email WHERE status='0'");

$row_cnt = $result->num_rows;
$row_cnt2 = $result2->num_rows;
$row_cnt3 = $result3->num_rows;

// If the query returns a valid response, prepare the JSON strin

if ($result) {

// The `$arrData` array holds the chart attributes and data

$arrData = array(
"chart" => array
(
"caption" => "Aantal geregistreerde emails",
"paletteColors" => "#0075c2",
"bgColor" => "#ffffff",
"borderAlpha"=> "20",
"canvasBorderAlpha"=> "0",
"usePlotGradientColor"=> "0",
"plotBorderAlpha"=> "10",
"showXAxisLine"=> "1",
"xAxisLineColor" => "#999999",
"showValues" => "0",
"divlineColor" => "#999999",
"divLineIsDashed" => "1",
"showAlternateHGridColor" => "0")
);

$arrData["data"] = array();

// Push the data into the array

while($row = mysqli_fetch_array($result)) {
array_push($arrData["data"], array(
"label" => 'active emails',
"value" => $row_cnt,
)
);
}
  1. row_cnt дает мне общее количество писем
  2. row_cnt2 дает мне общее количество активных писем
  3. row_cnt3 дает мне общее количество неактивных / подписанных писем

в диаграмме он только дает мне общее количество зарегистрированных электронных писем (row_cnt), и когда я хочу попытаться добавить другие 2 в диаграмму, это не дает мне никакой информации. Панель с общим количеством зарегистрированных сообщений также отображается дважды. Кто-то знает, что я делаю не так или как это сделать?

Я хочу отобразить 3 разных бара, 1 должен быть общим количеством зарегистрированных электронных писем, номер 2 должен быть активным, а номер 3 — неактивным.

1

Решение

Я думаю, вы должны просто нажать три значения $row_cnt, $row_cnt2 а также $row_cht3 один за другим.

Посмотри на это:

// The `$arrData` array holds the chart attributes and data

// First, add the chart array that describes the chart itself.

$arrData = array(
"chart" => array
(
"caption" => "Aantal geregistreerde emails",
...
...
"showAlternateHGridColor" => "0")
);

// Second, we add the values displayed by the bars.
$arrData["data"] = array();

// In this code example, we add the values each by each as they are available in three single variables.

// 1. Total:
array_push($arrData["data"], array(
"label" => 'total emails',
"value" => $row_cnt
));

// 2. Active:
array_push($arrData["data"], array(
"label" => 'active emails',
"value" => $row_cnt2
));

// 3. Active:
array_push($arrData["data"], array(
"label" => 'inactive emails',
"value" => $row_cnt3
));

Но, возможно, вам нужно выполнить цикл, так как количество обрабатываемых значений может измениться, и вам нужно быть гибким. В этом случае я рекомендую сначала собрать значения в отдельный массив, а затем зациклить отдельный массив. Как это:

...

// Second, we add the values displayed by the bars.
$arrData["data"] = array();

// In this code example, we for an array first and are able to loop over it.
$myBarArray = array();

// 1. Total:
$myBarArray[] = array(
"label" => 'total emails',
"value" => $row_cnt
);
// 2. Active:
$myBarArray[] = array(
"label" => 'active emails',
"value" => $row_cnt2
);
// 3. Active:
$myBarArray[] = array(
"label" => 'inactive emails',
"value" => $row_cnt3
);

// Now we can loop this array, or pass it to a further function or whatever:
foreach ($myBarArray as $bar) {
$arrData["data"][] = $bar;
}

В любом случае, перебирая $result так как в твоем вопросе не похоже верного пути.

Также обратите внимание на синтаксис с [] вместо array_push(), который иногда более читабелен.

Надеюсь это поможет 🙂

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]