X-Git-Url: https://git-public.kairo.at/?a=blobdiff_plain;ds=sidebyside;f=include%2Fclasses%2Frrdstat.php-class;h=9ba8bde8383e5852f95437551bdadb531c540e0b;hb=ad43ef32c376b6ed00aa4896dc779ce6f93586b5;hp=c0d752019505048f97c0ebe4e80e3118cac1bd18;hpb=f21e94d918018aa0bf38e9a1270564b1fcb0ce07;p=php-utility-classes.git diff --git a/include/classes/rrdstat.php-class b/include/classes/rrdstat.php-class index c0d7520..9ba8bde 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,20 @@ class rrdstat { } } else { $val = null; } - $upvals[] = is_null($val)?'U':$val; + $upvals[] = $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 +387,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);