function get_stat_data($db, $year = 0, $month = 0, $day = 0) { $i = 0; $unit = "year"; $table = "energy_year_stat"; if ($year) { $unit = "month"; $table = "energy_month_stat"; } if ($month) { $unit = "day"; $table = "energy_day_stat"; } if ($day) { $unit = "hour"; $table = "energy_hour_stat"; } $req = "SELECT "; $req .= "{$unit}, "; $req2 = "kwh_total, kwh_week_total, kwh_weekend_total FROM " . $table . " "; if ($unit != "year") { $req2 .= "WHERE "; if ($year) { $req2 .= "year = \"{$year}\" "; } if ($month) { $req2 .= "AND month = \"{$month}\" "; } if ($day) { $req2 .= "AND day = \"{$day}\" "; $req2 .= "UNION SELECT hour+24, " . $req2 . "+1 AND hour=0 "; } } $req .= $req2 . "ORDER BY {$unit};"; // echo "<br/>$req<br/><br/>"; $db->busyTimeout(10000); $result = $db->query($req); $arr = array(); while ($res = $result->fetchArray()) { if ($unit == "month") { $arr[$i] = array(0 => month_to_string($res[0]), 1 => $res[1], 2 => $res[2], 3 => $res[3]); } else { $arr[$i] = array(0 => "{$res['0']}", 1 => $res[1], 2 => $res[2], 3 => $res[3]); } $i++; } return $arr; }
private function getSelectList($field) { // get and sort initial list $list = $this->do->getDistinct($field); asort($list); // get the month names for a month field if ($field == 'month') { foreach ($list as $key => $month) { $list[$key] = month_to_string($month); } } // add 'All' option to list if (is_numeric(current(array_keys($list)))) { $output = array('0' => 'All'); } else { $output = array('' => 'All'); } // merge and return list $output += $list; return $output; }