diff options
author | artem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-11-16 15:16:10 +0000 |
---|---|---|
committer | artem <artem@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-11-16 15:16:10 +0000 |
commit | 951b627274d307ab484d1ae596e7d77a8d63ca30 (patch) | |
tree | 44d5dba83c5c74b64fd93e110b26a6fb12187c07 /frontends/php/include | |
parent | 7c02f572f78affee6f82830c8ef8b3f089509782 (diff) | |
download | zabbix-951b627274d307ab484d1ae596e7d77a8d63ca30.tar.gz zabbix-951b627274d307ab484d1ae596e7d77a8d63ca30.tar.xz zabbix-951b627274d307ab484d1ae596e7d77a8d63ca30.zip |
- [NTT-43] fixes for "No false for B" (Artem)
git-svn-id: svn://svn.zabbix.com/trunk@5065 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/include')
-rw-r--r-- | frontends/php/include/events.inc.php | 80 |
1 files changed, 74 insertions, 6 deletions
diff --git a/frontends/php/include/events.inc.php b/frontends/php/include/events.inc.php index c3683445..10b0ff89 100644 --- a/frontends/php/include/events.inc.php +++ b/frontends/php/include/events.inc.php @@ -198,12 +198,12 @@ function event_initial_time($row,$show_unknown=0){ $sql_cond=($show_unknown == 0)?' AND value<>2 ':''; $events = array(); - $res = DBselect('SELECT MAX(clock) as clock, value '. - ' FROM events '. - ' WHERE objectid='.$row['triggerid'].$sql_cond. - ' AND clock < '.$row['clock']. - ' AND object='.EVENT_OBJECT_TRIGGER. - ' GROUP BY value '. + $res = DBselect('SELECT MAX(eclock) as clock, e.value '. + ' FROM events e'. + ' WHERE e.objectid='.$row['triggerid'].$sql_cond. + ' AND e.clock < '.$row['clock']. + ' AND e.object='.EVENT_OBJECT_TRIGGER. + ' GROUP BY e.value '. ' ORDER BY clock DESC'); while($rows = DBfetch($res)){ @@ -221,4 +221,72 @@ function event_initial_time($row,$show_unknown=0){ } return true; } + + +function first_initial_eventid($row,$show_unknown=0){ + $sql_cond=($show_unknown == 0)?' AND value<>2 ':''; + + $events = array(); + + $sql = 'SELECT MAX(eventid) as eventid,MAX(clock) as clock, value '. + ' FROM events as e '. + ' WHERE objectid='.$row['triggerid']. + ' AND clock < '.$row['lastchange'].$sql_cond. + ' AND object='.EVENT_OBJECT_TRIGGER. + ' GROUP BY value '. + ' ORDER BY clock DESC'; + $res = DBselect($sql); + + while($rows = DBfetch($res)){ + $events[] = $rows; + } + + if(empty($events)){ + $sql = 'SELECT eventid,clock '. + ' FROM events as e '. + ' WHERE objectid='.$row['triggerid'].$sql_cond. + ' AND object='.EVENT_OBJECT_TRIGGER. + ' ORDER BY clock ASC'; + $res = DBselect($sql,1); + + while($rows = DBfetch($res)) return $rows['eventid']; + } + else if(!empty($events) && ($events[0]['value'] != $row['value'])){ + $clock = $events[0]['clock']; + $sql = 'SELECT eventid,clock '. + ' FROM events as e '. + ' WHERE clock > '.$clock. + ' AND objectid='.$row['triggerid'].$sql_cond. + ' AND object='.EVENT_OBJECT_TRIGGER. + ' ORDER BY clock ASC'; + + $res = DBselect($sql,1); + + while($rows = DBfetch($res)){ + return $rows['eventid']; + } + + $row['lastchange'] = $clock; + $row['value'] = $events[0]['value']; + return first_initial_eventid($row,$show_unknown=0); + } + else if(!empty($events) && ($events[0]['value'] == $row['value'])){ + + $clock = (count($events) > 1)?($events[1]['clock']):(0); + + $sql = 'SELECT eventid,clock '. + ' FROM events as e '. + ' WHERE clock > '.$clock. + ' AND objectid='.$row['triggerid'].$sql_cond. + ' AND object='.EVENT_OBJECT_TRIGGER. + ' AND value='.$row['value']. + ' ORDER BY clock ASC'; + + $res = DBselect($sql,1); + + $rows = DBfetch($res); + return $rows['eventid']; + } +return false; +} ?> |