X-Git-Url: https://git-public.kairo.at/?p=php-utility-classes.git;a=blobdiff_plain;f=include%2Fclasses%2Frrdstat.php-class;h=5c64af169d9836575b43780619418903b24a5fcf;hp=c0d752019505048f97c0ebe4e80e3118cac1bd18;hb=eb12543d81760361058d1f92d2002c5c97c2fe5b;hpb=f21e94d918018aa0bf38e9a1270564b1fcb0ce07 diff --git a/include/classes/rrdstat.php-class b/include/classes/rrdstat.php-class index c0d7520..5c64af1 100644 --- a/include/classes/rrdstat.php-class +++ b/include/classes/rrdstat.php-class @@ -297,8 +297,6 @@ class rrdstat { if (strlen($ret)) { $upvals = explode("\n", $ret); } ob_end_clean(); } - $walkfunc = create_function('&$val,$key', '$val = is_numeric(trim($val))?trim($val):"U";'); - array_walk($upvals, $walkfunc); } else { foreach ($this->rrd_fields as $ds) { @@ -332,16 +330,19 @@ class rrdstat { } } else { $val = null; } - $upvals[] = is_null($val)?'U':$val; } } if (in_array('L', $upvals)) { // for at least one value, we need to set the same as the last recorded value - $lastvals = $this->fetch(); + $fvals = $this->fetch(); + $rowids = array_shift($fvals); + $lastvals = array_shift($fvals); foreach (array_keys($upvals, 'L') as $akey) { - $upvals[$akey] = $lastvals[$akey]; + $upvals[$akey] = $lastvals[$rowids[$akey]]; } } + $walkfunc = create_function('&$val,$key', '$val = is_numeric(trim($val))?trim($val):"U";'); + array_walk($upvals, $walkfunc); $return = null; if (count($upvals)) { $update_cmd = 'rrdtool update '.$this->rrd_file.' N:'.implode(':', $upvals); @@ -385,7 +386,7 @@ class rrdstat { foreach ($rows as $row) { if (strlen(trim($row))) { $rvals = preg_split('/\s+/', $row); - $rtime = array_shift($rvals); + $rtime = str_replace(':', '', array_shift($rvals)); $rv_array = array(); foreach ($rvals as $key=>$rval) { $rv_array[$fields[$key]] = ($rval=='nan')?null:floatval($rval);