/*
* 根据月份来统计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;
}
<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="width: 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>