1

我在 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

我的问题的截图thx伙计们!

4

5 回答 5

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);

回应一些用户评论

好吧,如果有类似的值0006000006那么我们可以使用上面的代码如下。

<?php
    $a = '000006';
    $b = $a + 1;
?>
<input type="text" value="<?php printf("%0".strlen($a)."d", $b); ?>" />

我正在做的是传递length dynamically,所以如果将来数字size increase代码仍能按预期工作。

于 2013-02-19T04:21:41.607 回答
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);
于 2013-02-19T04:20:25.517 回答
0

使用 + 运算符强制 PHP 将变量解释为数字,这将截断任何前导零。您很可能必须进行一些有趣的字符串操作。

于 2013-02-19T04:11:02.180 回答
0

006ins 转换为,然后number添加1到它,它变成7,当它number it truncates zeros从左侧变成时。使用下面的代码,它将0向左填充。

echo str_pad($ayos['ib_code'], 3, "0", STR_PAD_LEFT); //becomes 007
于 2013-02-19T04:11:21.147 回答
0

利用$realnumber = intval($new_val);

echo $realnumber;

于 2013-02-19T04:13:44.240 回答