在我的数据库字段中,我有varchar这样的格式HPDO1209180000。我在做什么是如果我没有任何数据,我最后要加四位数字就可以了,如果有,我要每增加一位时间。但是问题是0001之后也只增加了所有0001,而不是0002。我正在这样做,请帮助我。谢谢前进。
Local
答案 0 :(得分:1)
如果我没看错的话,它看起来像这样:
$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位数字,在值上加上一个,然后再次用零填充以将其添加到新字符串中。