自动 递增 php 代码点火器中 varchar 字段中的最后四位数字值



在我的数据库字段中,我有像这种格式的 varchar 字段HPDO1209180000。我正在做的是,如果我没有任何数据,我最后添加四位数字,它工作正常。如果它在那里,我每次都会递增一个,但问题是在 0001 之后也只递增所有 0001 而不是像那样递增 0002。我正在这样做,请帮助我,提前谢谢。

$this->db->select('grmno');
$this->db->from('procurement_receive_material');
$this->db->where('DATE(createdon)',$currentdate);
$this->db->where('SUBSTRING(grmno,1,10)',$grn_code);
$this->db->order_by('prmid','desc');
$query = $this->db->get();
if($query->num_rows()>0){
$output = $query->row();
$grmNumber = $output->grmno;
//after 0001 also it incrementing 0001 not incrementing;
$inrno=str_pad((int)$grmNumber+1, 4, 0, STR_PAD_LEFT); 
$grmNumber=$vendor_result.$branch_result.$currentDate.$currentmonth.$currentyear.$inrno;
}else{
$grmNumber = $vendor_result.$branch_result.$currentDate.$currentmonth.$currentyear.'0000';
}

如果我没看错的话,它看起来像这样一行:

$inrno=str_pad((int)$grmNumber+1, 4, 0, STR_PAD_LEFT);

取 $output->grmno 的 int 值。 同样,如果我直接解释您的问题,则可以将这个字段评估为:

HPDO1209180001

此类字符串的整数值将为 0。 因此,为什么它们总是以 0001 结尾。

要解决此问题,您需要抓取字符串的最后 4 个字符,并仅递增该字符。 例如:

$suffix = substr($grmNumber, -4);
$newsuffix = intval($suffix) + 1;
$irno = str_pad($newsuffix, 4, 0, STR_PAD_LEFT);

这将正确抓取最后 4 位数字,在值中添加一个数字,然后再次用零填充它以添加到新字符串中。

相关内容

  • 没有找到相关文章

最新更新