$sql = " select nagios_statehistory.object_id, unix_timestamp(nagios_statehistory.state_time) as state_time, nagios_statehistory.state from nagios_statehistory inner join nagios_hostgroup_members on nagios_hostgroup_members.host_object_id=nagios_statehistory.object_id inner join nagios_hostgroups on nagios_hostgroups.hostgroup_id=nagios_hostgroup_members.hostgroup_id where"; if ($startTime == "null") { if ($stopTime != "null") { $sql .= " unix_timestamp(nagios_statehistory.state_time) < $stopTime "; } } else { if ($stopTime == "null") { $sql .= " unix_timestamp(nagios_statehistory.state_time) > $startTime "; } else { $sql .= " unix_timestamp(nagios_statehistory.state_time) < $stopTime and unix_timestamp(nagios_statehistory.state_time) > $startTime "; } } $includePending = FALSE; if ($_POST["type"] == 1) { $sql .= "and nagios_statehistory.object_id in ("; for($i = 0; $i < $hostgroupCount; $i++) { // yay for sql insertion attacks! $sql = $sql . $hostgroups[$i]; if($i < $hostgroupCount - 1) { $sql = $sql . ","; } } } elseif ($_POST["type"] == 2) { $i = 0; $sql .= "and nagios_hostgroups.hostgroup_object_id in("; foreach($hostgroups as $value) { // yay for sql insertion attacks! $sql = $sql . $hostgroups[$i]; if($i < $hostgroupCount - 1) { $sql = $sql . ","; } $i++; } } $sql = $sql . ") order by nagios_statehistory.object_id, nagios_statehistory.state_time"; $q = db_fetch_assoc("$sql"); $row_count = count($q); for($i = 0; $i < $row_count; $i++) { if($q[$i]["object_id"] != $current_host) { if($i != 0) { $host_times[$current_host]["total_time"] = time() - $first_time; $host_times[$current_host]["hostid"] = $current_host; } $last_state = $q[$i]["state"]; $last_time = $q[$i]["state_time"]; $first_time = $last_time; $current_host = $q[$i]["object_id"]; } else { switch ($last_state) { case 0: $state_name = "OK"; break; case 1: $state_name = "DOWN"; break; case 2: $state_name = "UNREACHABLE"; break; default: $state_name = "UNKNOWN"; break; } $host_times[$current_host][$state_name] = $q[$i]["state_time"] - $last_time; $last_state = $q[$i]["state"]; $last_time = $q[$i]["state_time"]; } echo "last state: ".$last_state." State Time: ".$last_time; } $host_times[$current_host]["total_time"] = time() - $first_time; $host_times[$current_host]["hostid"] = $current_host;