Fusioncharts - 2D Column Stack, отображающий ограниченные записи

0

Я использую MySQL/PHP с PHPWrapper, чтобы использовать FusionCharts. Я смог получить данные, чтобы получить их как 2D столбцы столбцов, но застрял в 7, несмотря на наличие каких-либо ограничений.

Я использую его для отображения количества записей за каждый месяц, начиная с апреля, до ноября, но первый стек начинается с мая, когда я группирую данные по месяцам в ASC. Интересный бит заключается в том, что, когда я изменяю это на DESC, я вижу данные из OCt- Apr (7 записей) и данные Nov отсутствуют. Я не задал никаких ограничений, которые могут остановить это, но я могу заставить это работать.

Мой тип набора данных в MySQL:

acqid - INT
acq_month - DATE

fusioncharts.php и связанный с ним JS должным образом вызываются в файле.

Ниже приведен код, который я использую;

<?php
    // Form the SQL query that returns the top 10 most populous countries
    $strQuery = "SELECT count(acqid), acq_month FROM newacq GROUP BY MONTH(acq_month) ASC";

    // Execute the query, or else return the error message.
    $result = $conn->query($strQuery) or exit("Error code ({$conn->errno}): {$conn->error}");
    $arr=mysqli_fetch_array($result);

    //while($arr=mysqli_fetch_array($result)) {
      // print_r($arr);
    //}

    // If the query returns a valid response, prepare the JSON string
    if ($result) {
        // The '$arrData' array holds the chart attributes and data
        $arrData = array(
            "chart" => array(
              "caption" => "New Acq",
              "showValues" => "1",
              "theme" => "zune"
            )
        );

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

// Push the data into the array
        while($row = mysqli_fetch_array($result)) {
        array_push($arrData["data"], array(
            "label" => date("M-Y", strtotime($row["acq_month"])),
            "value" => $row["count(acqid)"],
            )
        );
        }

        /*JSON Encode the data to retrieve the string containing the JSON representation of the data in the array. */

        $jsonEncodedData = json_encode($arrData);


/*Create an object for the column chart using the FusionCharts PHP class constructor. Syntax for the constructor is ' FusionCharts("type of chart", "unique chart id", width of the chart, height of the chart, "div id to render the chart", "data format", "data source")'. Because we are using JSON data to render the chart, the data format will be 'json'. The variable '$jsonEncodeData' holds all the JSON data for the chart, and will be passed as the value for the data source parameter of the constructor.*/

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

        // Render the chart
        $columnChart->render();

        // Close the database connection
        $conn->close();
    }

?>

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

Когда я попытался получить данные, выполненные в ARRAY, используя [print_r], я получил следующее сообщение;

Array ( [0] => 208 [count(acqid)] => 208 [1] => 2017-04-01 [acq_month] => 2017-04-01 ) Array ( [0] => 241 [count(acqid)] => 241 [1] => 2017-05-01 [acq_month] => 2017-05-01 ) Array ( [0] => 243 [count(acqid)] => 243 [1] => 2017-06-01 [acq_month] => 2017-06-01 ) Array ( [0] => 269 [count(acqid)] => 269 [1] => 2017-07-01 [acq_month] => 2017-07-01 ) Array ( [0] => 373 [count(acqid)] => 373 [1] => 2017-08-01 [acq_month] => 2017-08-01 ) Array ( [0] => 370 [count(acqid)] => 370 [1] => 2017-09-01 [acq_month] => 2017-09-01 ) Array ( [0] => 283 [count(acqid)] => 283 [1] => 2017-10-01 [acq_month] => 2017-10-01 ) Array ( [0] => 312 [count(acqid)] => 312 [1] => 2017-11-01 [acq_month] => 2017-11-01 )

Он показывает информацию, выполненную за апрель и ноябрь, в том числе. Если это поможет!

Теги:
arrays
fusioncharts

1 ответ

0

Проблема, с которой я мог бы понять, немного изменив код, состояла в том, чтобы сделать это с помощью значения массива после выполнения запроса.

Мне пришлось просто скрыть/комментировать "$ arr = mysqli_fetch_array ($ result);", и это сработало !!!

первоначально

$result = $conn->query($strQuery) or exit("Error code ({$conn->errno}): {$conn->error}");
$arr=mysqli_fetch_array($result);

Изменился на;

$result = $conn->query($strQuery) or exit("Error code ({$conn->errno}): {$conn->error}");
//$arr=mysqli_fetch_array($result);

И это сработало !!!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню