2013-02-19 77 views
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']; 

例如輸出。我無法解決的事情是,當我嘗試在文本框中顯示值$ new_val,肯定我們的預期結果如果$ ayos ['ib_code'] = 006那麼$ new_val等於007,但問題是它只有7不007,文本框內部顯示時.. THX

The screenshot of my problem thx guys!

+0

上面的代碼顯示了你的數據庫中有什麼,所以可能在你的數據庫中它的存儲爲006,所以它顯示如此。 – 2013-02-19 04:12:31

回答

0

使用+操作者施力PHP解釋變量爲數字,這將截斷任何前導零。你將不得不做一些有趣的字符串操作。

0

006插件轉換爲number,之後將其添加到1它,它變得7,當下面的代碼變得number it truncates zeros從左side.Use,它將墊0到左。

echo str_pad($ayos['ib_code'], 3, "0", STR_PAD_LEFT); //becomes 007 
0

使用$realnumber = intval($new_val);

echo $realnumber;

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); 
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代碼仍然正常工作。

+0

如果你有一些4個字符的代碼和一些3個字符的代碼? – user2051349 2013-02-19 04:31:36

+0

可能是我們可以在那裏動態傳遞字符串計數...讓我測試它..然後我會更新它爲u @ user2051349 – 2013-02-19 04:33:31

+0

@ user2051349 hey pal看到我的更新其作品,並測試了很多品種。 – 2013-02-19 04:37:16

相關問題