Example #1
0
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;
}