zoukankan      html  css  js  c++  java
  • 12个月份统计分组


    /*
    * 根据月份来统计trade里面的入账,支出,总盈利 */ public function countMonth(){ $in = array(); $out = array(); $res = array(); $year = date("Y",time()); $in_sql = 'SELECT SUM(money) AS mon, FROM_UNIXTIME(cdate, "%m") AS m FROM trade WHERE way_type=1 GROUP BY m'; $out_sql = 'SELECT SUM(money) AS mon, FROM_UNIXTIME(cdate, "%m") AS m FROM trade WHERE way_type=0 GROUP BY m'; $res = 'SELECT SUM( IF (way_type>0,money,-money)) AS mon, FROM_UNIXTIME(cdate, "%m") AS m FROM trade GROUP BY m'; $obj = new Table("trade"); $inpdo = $obj->query($in_sql); $outpdo = $obj->query($out_sql); $respdo = $obj->query($res); $inRows = $inpdo->fetchAll(); $outRows = $outpdo->fetchAll(); $resRows = $respdo->fetchAll(); $in = $this->formartMonth($inRows); $out = $this->formartMonth($outRows); $res = $this->formartMonth($resRows); return array(implode(",", $in),implode(",", $out), implode(",", $res), ); } public function formartMonth($rows){ $arr = array(); for($i=1; $i<=12; $i++){ foreach($rows as $v){ if(intVal($v['m']) == $i){ $arr[$i] = $v['mon']; break; } $arr[$i] = 0; } } return $arr; }

    结合chart.js插件,html代码:

    <div>
                 <ul id="before-bg-color-list" class="simple-list color-list">
                     <li class="before-fg-emerald padding10 margin10 place-left">收入</li>
                     <li class="before-fg-orange padding10 margin10  place-left">支出</li>
                     <li class="before-fg-red padding10  margin10 place-left">总和</li>
                 </ul>
             </div>
             <div style=" 70%">
                <canvas id="canvas"></canvas>
            </div>
    
    
            <script>
            var randomScalingFactor = function(){ return Math.round(Math.random()*100)};
        
            var barChartData = {
                labels : ["一月",
                          "二月",
                          "三月",
                          "四月",
                          "五月",
                          "六月",
                          "七月",
                          "八月",
                          "九月",
                          "十月",
                          "十一月",
                          "十二月"
                          ],
                datasets : [
                    {
                        fillColor : "#008a00",
                        strokeColor : "rgba(220,220,220,0.8)",
                        highlightFill: "rgba(220,220,220,0.75)",
                        highlightStroke: "rgba(220,220,220,1)",
                        data : [
                            <?php echo $countData?$countData[0]:"0,0,0,0,0,0,0,0,0,0,0,0"; ?>
                        ]
                    },
                    {
                        fillColor : "#fa6800",
                        strokeColor : "rgba(151,187,205,0.8)",
                        highlightFill : "rgba(151,187,205,0.75)",
                        highlightStroke : "rgba(151,187,205,1)",
                        data : [
                            <?php echo $countData?$countData[1]:"0,0,0,0,0,0,0,0,0,0,0,0"; ?>
                        ]
                    },
                    {
                        fillColor : "#ce352c",
                        strokeColor : "rgba(151,187,205,0.8)",
                        highlightFill : "rgba(151,187,205,0.75)",
                        highlightStroke : "rgba(151,187,205,1)",
                        data : [
                            <?php echo $countData?$countData[2]:"0,0,0,0,0,0,0,0,0,0,0,0"; ?>
                        ]
                    }
                ]
        
            }
            window.onload = function(){
                var ctx = document.getElementById("canvas").getContext("2d");
                window.myBar = new Chart(ctx).Bar(barChartData, {
                    responsive : true
                });
            }
        
            </script>
        </div>

    效果如下:

  • 相关阅读:
    luogu P4544 [USACO10NOV]Buying Feed G 斜率优化dp 双层?
    luogu P3594 [POI2015]WIL-Wilcze doły 单调队列dp+双指针
    luogu P2384 最短路 spfa+数学?
    luogu P2071 座位安排 二分图最大匹配 双重的
    luogu P1841 [JSOI2007]重要的城市 dp+Floyd
    luogu P2034 选择数字 单调队列优化dp 脑残行为,导致wa了很多遍
    【最短路-判断正权环 Floyd】Currency Exchange POJ
    【最短路-判断正权环 Bellman-Ford】Arbitrage POJ
    【最短路/矩阵+最小环】0 or 1 HDU
    【最短路+区间枚举】昂贵的聘礼 POJ
  • 原文地址:https://www.cnblogs.com/yuwensong/p/5302317.html
Copyright © 2011-2022 走看看