簡體   English   中英

來自 PHP 的流程圖

[英]Flot Chart from PHP

我正在嘗試使用數據庫中的值創建一個流程圖。 我現在如何擁有它,圖表只繪制了 1 個數據點。 我怎樣才能讓它繪制數組中的其余數據? 我試圖繪制在每個日期輸入的代理總數。 var data2 將用於代理丟失

<?php

      foreach($mysqli->query('SELECT COUNT(*), agent_date_entered, agent_id 
      FROM agents GROUP BY agent_date_entered 
      ORDER BY agent_date_entered') as $row) {

        $count[] = $row['COUNT(*)'];
        $agent[] = $row['agent_id'];
        $date[] = $row['agent_date_entered'];

      }
?>

<script>
    var data, data1, options, chart;
    var data1 = [ <?php echo json_encode($count); ? > , < ? php echo json_encode($date); ?> ];
    var data2 = [];

    data = [{
        data: data1,
        label: "Agents Gained",
        lines: {
            show: true
        },
        points: {
            show: true
        }
    }, {
        data: data2,
        label: "Agents Lost",
        lines: {
            show: true
        },
        points: {
            show: true
        }
    }];
    options = {
        legend: {
            position: "nw"
        }
    };
    $(document).ready(function () {
        chart = $.plot($("#placeholder"), data, options);
    });
</script>

您的數據格式不是 Flot 所要求的。 你需要類似的東西

[[1, 1533081600000], [1, 1535932800000]]

(或[[1533081600000, 1], [1535932800000, 1]]如果您想要 x 軸上的日期)。
1535932800000這樣的數字是 JavaScript 時間戳。 您還需要選項mode: 'time'帶有日期/時間值的軸上的mode: 'time'

有關更多信息,請參閱數據格式時間序列數據下的文檔。

借助Data formatTime series data評論之一中的鏈接,我找到了我正在尋找的答案。

以防萬一其他人遇到這個問題,這是我如何讓它工作的。 首先,我將 sql 語句中的日期更改為: (UNIX_TIMESTAMP(agent_date_depart)*1000) AS date 然后我在設置變量$depart = json_encode(floatval($row['date']));時對其進行編碼$depart = json_encode(floatval($row['date'])); . 為了使它在 x 軸上不是一個巨大的數字並顯示為日期,我將 x 軸設置如下: xaxis: {mode: "time", timeformat: "%Y/%m/%d"}, . 您甚至可以使用 tooltipOpts 在工具提示中設置日期格式,如下所示:

    tooltipOpts: {
        content: function (label, x, y) {
            var date = new Date(+x);
            var tooltip = '<h4>' + label + '</h4><ul>';
            tooltip += '<li>Date ' + date.toLocaleDateString() + '</li>';
            tooltip += '<li>Total Count: ' + y + '</li></ul>';
            return tooltip;
        },

我發現讓數據顯示在圖表中的最簡單方法是,我將 sql 語句放在 data 變量中,如下所示:

        var d2 = [

<?php

         $sql = "SELECT COUNT(agent_id), (UNIX_TIMESTAMP(agent_date_depart)*1000) AS date FROM agents
          WHERE agent_date_depart BETWEEN '$bdatecy' AND '$edatecy'
          GROUP BY agent_date_depart ";
          $result = mysqli_query($mysqli, $sql);
           while ($row = mysqli_fetch_assoc($result)) {

    $agent = $row['COUNT(agent_id)'];
    $depart = json_encode(floatval($row['date']));

    echo "[".$depart.", ".$agent."],";
  }

?>

  ];

希望這會有所幫助,我想再次感謝您提供這些鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM