function GetTimeDataSet(&$xdata, $chart_type, $data_source, $min_threshold, $criteria) { global $db, $debug_mode; // if ($debug_mode > 0) { // echo "chart_type = $chart_type<BR> // data_source = $data_source<BR>"; // } $sql = "SELECT min(timestamp), max(timestamp) FROM acid_event " . $criteria[0] . " WHERE " . $criteria[1]; $result = $db->baseExecute($sql); $myrow = $result->baseFetchRow(); $start_time = $myrow[0]; $stop_time = $myrow[1]; $result->baseFreeRows(); $year_start = date("Y", strtotime($start_time)); $month_start = date("m", strtotime($start_time)); $day_start = date("d", strtotime($start_time)); $hour_start = date("H", strtotime($start_time)); $year_end = date("Y", strtotime($stop_time)); $month_end = date("m", strtotime($stop_time)); $day_end = date("d", strtotime($stop_time)); $hour_end = date("H", strtotime($stop_time)); // using the settings from begin_xyz and end_xyz // minutes are not supported actually // begin global $chart_begin_year; global $chart_begin_month; global $chart_begin_day; global $chart_begin_hour; if (strcmp($chart_begin_year, " ") and $year_start < $chart_begin_year) { $year_start = $chart_begin_year; $month_start = "01"; $day_start = "01"; $hour_start = "00"; } if (strcmp($chart_begin_month, " ") and $month_start < $chart_begin_month) { $month_start = $chart_begin_month; $day_start = "01"; $hour_start = "00"; } if (strcmp($chart_begin_day, " ") and $day_start < $chart_begin_day) { $day_start = $chart_begin_day; $hour_start = "00"; } if (strcmp($chart_begin_hour, " ") and $hour_start < $chart_begin_hour) { $hour_start = $chart_begin_hour; } //end global $chart_end_year; global $chart_end_month; global $chart_end_day; global $chart_end_hour; if (strcmp($chart_end_year, " ") and $year_end < $chart_end_year) { $year_end = $chart_end_year; $month_end = "01"; $day_end = "01"; $hour_end = "00"; } if (strcmp($chart_end_month, " ") and $month_end < $chart_end_month) { $month_end = $chart_end_month; $day_end = "01"; $hour_end = "00"; } if (strcmp($chart_end_day, " ") and $day_end < $chart_end_day) { $day_end = $chart_end_day; $hour_end = "00"; } if (strcmp($chart_end_hour, " ") and $hour_end < $chart_end_hour) { $hour_end = $chart_end_hour; } switch ($chart_type) { case 1: // if ($debug_mode > 0) { // print "chart_begin_hour = \"$chart_begin_hour\", hour_start = \"$hour_start\"<BR>\n"; // print "chart_end_hour = \"$chart_end_hour\", hour_end = \"$hour_end\"<BR>\n"; // } if (!strcmp($chart_end_hour, " ") || $chart_end_hour == "") { // hour_start = -1 is NOT possible, because with chart_type == 1 // each hour is to be queried. We want bars hour by hour. $hour_end = 23; } break; case 2: $hour_start = -1; break; case 4: $day_start = -1; $hour_start = -1; break; } // if ($debug_mode > 0) { // echo '<TABLE BORDER="1"> // <TR> // <TD>year_start<TD>year_end<TD>month_start<TD>month_end // <TD>day_start<TD>day_end<TD>hour_start<TD>hour_end // <TR> // <TD>' . $year_start . '<TD>' . $year_end . '<TD>' . $month_start . '<TD>' . $month_end . '<TD>' . $day_start . '<TD>' . $day_end . '<TD>' . $hour_start . '<TD>' . $hour_end . '</TABLE>'; // } $cnt = 0; $ag = $criteria[0]; $ag_criteria = $criteria[1]; for ($i_year = $year_start; $i_year <= $year_end; $i_year++) { // removed AND below // !!! AVN !!! // to_date() must used! $sql = "SELECT count(*) FROM acid_event " . $ag . " WHERE {$ag_criteria} AND " . $db->baseSQL_YEAR("timestamp", "=", $i_year); if ($month_start != -1) { if ($i_year == $year_start) { $month_start2 = $month_start; } else { $month_start2 = 1; } if ($i_year == $year_end) { $month_end2 = $month_end; } else { $month_end2 = 12; } for ($i_month = $month_start2; $i_month <= $month_end2; $i_month++) { $sql = "SELECT count(*) FROM acid_event {$ag} WHERE {$ag_criteria} AND" . $db->baseSQL_YEAR("timestamp", "=", $i_year) . " AND " . $db->baseSQL_MONTH("timestamp", "=", FormatTimeDigit($i_month)); if ($day_start != -1) { if ($i_month == $month_start) { $day_start2 = $day_start; } else { $day_start2 = 1; } if ($i_month == $month_end) { $day_end2 = $day_end; } else { $day_end2 = 31; } for ($i_day = $day_start2; $i_day <= $day_end2; $i_day++) { if (checkdate($i_month, $i_day, $i_year)) { $sql = "SELECT count(*) FROM acid_event {$ag} WHERE {$ag_criteria} AND " . $db->baseSQL_YEAR("timestamp", "=", $i_year) . " AND " . $db->baseSQL_MONTH("timestamp", "=", FormatTimeDigit($i_month)) . " AND " . $db->baseSQL_DAY("timestamp", "=", FormatTimeDigit($i_day)); if ($hour_start != -1) { // jl: The condition "i_hour <= hour_end" // is correct ONLY if the first day is equal // to the last day of the query. // Otherwise we want 24 hours of // all the days preceding the last day of the query. // Analogously for hour_start. if ($i_day == $day_start2) { $hour_start2 = $hour_start; } else { $hour_start2 = 0; } if ($i_day == $day_end2) { $hour_end2 = $hour_end; } else { $hour_end2 = 23; } for ($i_hour = $hour_start2; $i_hour <= $hour_end2; $i_hour++) { //if($i_hour < 10 && strlen($i_hour) == 1) // $i_hour = "0".$i_hour; $i_hour = FormatTimeDigit($i_hour); $sql = "SELECT count(*) FROM acid_event {$ag} WHERE {$ag_criteria} AND " . $db->baseSQL_YEAR("timestamp", "=", $i_year) . " AND " . $db->baseSQL_MONTH("timestamp", "=", FormatTimeDigit($i_month)) . " AND " . $db->baseSQL_DAY("timestamp", "=", FormatTimeDigit($i_day)) . " AND " . $db->baseSQL_HOUR("timestamp", "=", $i_hour); StoreAlertNum($sql, FormatTimeDigit($i_month) . "/" . FormatTimeDigit($i_day) . "/" . $i_year . " " . $i_hour . ":00:00 - " . $i_hour . ":59:59", $xdata, $cnt, $min_threshold); } // end hour } else { StoreAlertNum($sql, FormatTimeDigit($i_month) . "/" . FormatTimeDigit($i_day) . "/" . $i_year, $xdata, $cnt, $min_threshold); } } } // end day } else { StoreAlertNum($sql, FormatTimeDigit($i_month) . "/" . $i_year, $xdata, $cnt, $min_threshold); } } // end month } else { StoreAlertNum($sql, $i_year, $xdata, $cnt, $min_threshold); } } // end year return $cnt; }
function GetTimeDataSet(&$xdata, $chart_type, $data_source, $min_threshold, $criteria) { global $db, $debug_mode; if ($debug_mode > 0) { echo "chart_type = {$chart_type}<BR>\n data_source = {$data_source}<BR>"; } $sql = "SELECT min(timestamp), max(timestamp) FROM acid_event " . $criteria[0] . " WHERE " . $criteria[1]; //echo $sql."<BR>"; $result = $db->acidExecute($sql); $myrow = $result->acidFetchRow(); $start_time = $myrow[0]; $stop_time = $myrow[1]; $result->acidFreeRows(); $year_start = date("Y", strtotime($start_time)); $month_start = date("m", strtotime($start_time)); $day_start = date("d", strtotime($start_time)); $hour_start = date("H", strtotime($start_time)); $year_end = date("Y", strtotime($stop_time)); $month_end = date("m", strtotime($stop_time)); $day_end = date("d", strtotime($stop_time)); $hour_end = date("H", strtotime($stop_time)); // using the settings from begin_xyz and end_xyz // minutes are not supported actually // begin global $chart_begin_year; global $chart_begin_month; global $chart_begin_day; global $chart_begin_hour; if (strcmp($chart_begin_year, " ") and $year_start < $chart_begin_year) { $year_start = $chart_begin_year; $month_start = "01"; $day_start = "01"; $hour_start = "00"; } if (strcmp($chart_begin_month, " ") and $month_start < $chart_begin_month) { $month_start = $chart_begin_month; $day_start = "01"; $hour_start = "00"; } if (strcmp($chart_begin_day, " ") and $day_start < $chart_begin_day) { $day_start = $chart_begin_day; $hour_start = "00"; } if (strcmp($chart_begin_hour, " ") and $hour_start < $chart_begin_hour) { $hour_start = $chart_begin_hour; } //end global $chart_end_year; global $chart_end_month; global $chart_end_day; global $chart_end_hour; if (strcmp($chart_end_year, " ") and $year_end < $chart_end_year) { $year_end = $chart_end_year; $month_end = "01"; $day_end = "01"; $hour_end = "00"; } if (strcmp($chart_end_month, " ") and $month_end < $chart_end_month) { $month_end = $chart_end_month; $day_end = "01"; $hour_end = "00"; } if (strcmp($chart_end_day, " ") and $day_end < $chart_end_day) { $day_end = $chart_end_day; $hour_end = "00"; } if (strcmp($chart_end_hour, " ") and $hour_end < $chart_end_hour) { $hour_end = $chart_end_hour; } switch ($chart_type) { case 1: $hour_start = 0; $hour_end = 23; break; case 2: $hour_start = -1; break; case 4: $day_start = -1; $hour_start = -1; break; } if ($debug_mode > 0) { echo '<TABLE BORDER=1> <TR> <TD>year_start<TD>year_end<TD>month_start<TD>month_end <TD>day_start<TD>day_end<TD>hour_start<TD>hour_end <TR> <TD>' . $year_start . '<TD>' . $year_end . '<TD>' . $month_start . '<TD>' . $month_end . '<TD>' . $day_start . '<TD>' . $day_end . '<TD>' . $hour_start . '<TD>' . $hour_end . '</TABLE>'; } $cnt = 0; $ag = $criteria[0]; $ag_criteria = $criteria[1]; for ($i_year = $year_start; $i_year <= $year_end; $i_year++) { $sql = "SELECT count(*) FROM acid_event " . $ag . " WHERE {$ag_criteria} AND " . $db->acidSQL_YEAR("timestamp", "=", $i_year); if ($month_start != -1) { if ($i_year == $year_start) { $month_start2 = $month_start; } else { $month_start2 = 1; } if ($i_year == $year_end) { $month_end2 = $month_end; } else { $month_end2 = 12; } for ($i_month = $month_start2; $i_month <= $month_end2; $i_month++) { $sql = "SELECT count(*) FROM acid_event {$ag} WHERE {$ag_criteria} AND" . $db->acidSQL_YEAR("timestamp", "=", $i_year) . " AND " . $db->acidSQL_MONTH("timestamp", "=", $i_month); if ($day_start != -1) { if ($i_month == $month_start) { $day_start2 = $day_start; } else { $day_start2 = 1; } if ($i_month == $month_end) { $day_end2 = $day_end; } else { $day_end2 = 31; } for ($i_day = $day_start2; $i_day <= $day_end2; $i_day++) { if (checkdate($i_month, $i_day, $i_year)) { $sql = "SELECT count(*) FROM acid_event {$ag} WHERE {$ag_criteria} AND " . $db->acidSQL_YEAR("timestamp", "=", $i_year) . " AND " . $db->acidSQL_MONTH("timestamp", "=", $i_month) . " AND " . $db->acidSQL_DAY("timestamp", "=", $i_day); if ($hour_start != -1) { for ($i_hour = $hour_start; $i_hour <= $hour_end; $i_hour++) { $sql = "SELECT count(*) FROM acid_event {$ag} WHERE {$ag_criteria} AND " . $db->acidSQL_YEAR("timestamp", "=", $i_year) . " AND " . $db->acidSQL_MONTH("timestamp", "=", $i_month) . " AND " . $db->acidSQL_DAY("timestamp", "=", $i_day) . " AND " . $db->acidSQL_HOUR("timestamp", "=", $i_hour); StoreAlertNum($sql, $i_month . "/" . $i_day . "/" . $i_year . " " . $i_hour . ":00:00 - " . $i_hour . ":59:59", $xdata, $cnt, $min_threshold); //StoreAlertNum($sql, $i_month."/".$i_day." ". // $i_hour.":00 - ".$i_hour.":59", // $xdata, $cnt, $min_threshold); } // end hour } else { StoreAlertNum($sql, $i_month . "/" . $i_day . "/" . $i_year, $xdata, $cnt, $min_threshold); } } } // end day } else { StoreAlertNum($sql, $i_month . "/" . $i_year, $xdata, $cnt, $min_threshold); } } // end month } else { StoreAlertNum($sql, $i_year, $xdata, $cnt, $min_threshold); } } // end year return $cnt; }