where('CounterID',$CounterID)->get()->getResultArray(); $cValue = $row[0]['CounterValue']; $cStart = $row[0]['CounterStart']; $cEnd = $row[0]['CounterEnd']; $cReset = $row[0]['CounterReset']; $cPad = strlen((string)$cEnd); // next value > end, back to start if($cValue > $cEnd) { $cValue = $cStart; } $cnum = str_pad($cValue, $cPad, "0", STR_PAD_LEFT); $cValue_next = $cValue+1; $this->set('CounterValue', $cValue_next)->where('CounterID',$CounterID)->update(); return $cnum; } }