我在php中制作插入记录代码然后我需要制作一个自动代码,或者用户只需查看文本框的准备值,我只需使用此代码。
$ayos = mysql_fetch_array(mysql_query("select ib_code from item_brand order by ib_code desc limit 1"));
$new_val = $ayos['ib_code'] + 1;
当你显示它时只需使用:
echo $ayos['ib_code'];
例如输出 006 。我无法解决的问题是,当我尝试在文本框中显示 $ new_val 的值时,如果$ ayos [' ib_code'] = 006则确定我们的预期结果new_val等于007,但问题是它在文本框内显示时只有7而不是007 .. thx
答案 0 :(得分:1)
尝试
如果要显示左边用零填充的数字,请考虑使用printf()
(或其众多亲属之一)。
经过测试的示例:
<?php
$a = '006';
$b = $a + 1;
?>
<input type="text" value="<?php printf("%03d", $b); ?>" />
以上代码经过测试。
sprintf()可以做到这一点:
echo sprintf('%03d', $ayos['ib_code']);
或使用str_pad()
- 但代码中的时间稍长:
echo str_pad($ayos['ib_code'], 3, 0, STR_PAD_LEFT);
对某些用户评论的回复
如果有0006
或000006
等值,那么我们可以使用上面的代码如下。
<?php
$a = '000006';
$b = $a + 1;
?>
<input type="text" value="<?php printf("%0".strlen($a)."d", $b); ?>" />
我正在做的是传递length dynamically
所以如果以后编号size increase
代码仍然按预期工作。
答案 1 :(得分:0)
使用+运算符强制PHP将变量解释为数字,这将截断任何前导零。你最有可能必须做一些有趣的字符串操作。
答案 2 :(得分:0)
006
ins已转换为number
,之后会向其添加1
,当它从左侧变为7
时变为number it truncates zeros
。使用下面的代码,它会将0
填充到左侧。
echo str_pad($ayos['ib_code'], 3, "0", STR_PAD_LEFT); //becomes 007
答案 3 :(得分:0)
使用$realnumber = intval($new_val);
echo $realnumber;
答案 4 :(得分:0)
分配$new_val
变量,如下所示:
//GET count of leading 0's into variable
$leading_zero_count = strspn($ayos['ib_code'], "0");
$new_val = $ayos['ib_code']+1;
/**
* Pad the $new_val variable with 0's so that
* new length = total leading 0's + new length of $new_val
**/
$new_val = str_pad ($new_val, $leading_zero_count+strlen($new_val),0, STR_PAD_LEFT);