簡體   English   中英

我正在嘗試自動增加發票編號

[英]i'm trying to increase the invoice number automatically

大家好,我正在嘗試自動增加發票編號,問題是當涉及到 2019-10 時自動返回 2019-01 她沒有完成增加可以有人幫助我嗎

<?php  

    $value2='';
    //Query to fetch last inserted invoice number
    $query = "SELECT numfacturation from facturation order by numfacturation DESC LIMIT 1";
    $stmt = $con->query($query);
    if(mysqli_num_rows($stmt) > 0) {
        if ($row = mysqli_fetch_assoc($stmt)) {
            $value2 = $row['numfacturation'];
            $value2 = substr($value2, 6, 13);//separating numeric part
            $value2 = $value2 + 1;//Incrementing numeric part
            $value2 = "2019-" . sprintf('%02s', $value2);//concatenating incremented value
            $value = $value2; 
        }
    } 
    else {
        $value2 = "2019-01";
        $value = $value2;
    }

?>

請參閱substr()的手冊;

 substr ( string $string, int $start [, int $length ] ): string

返回由 start 和 length 參數指定的字符串部分。

細繩

輸入字符串。 必須是一個字符或更長。

開始

如果start為非負數,則返回的字符串將從string中的start 'th position開始,從零開始計數。 例如,在字符串“ abcdef ”中,position 0處的字符為“ a ”,position 2處的字符為“ Z4A8A08F09D37B73795649038408B5F ”,以此類推。

注意“從零開始計數”部分。

考慮兩個例子:

$value2 = '2019-XY';
$value2 = substr($value2, 6, 13);
var_dump($value2);

結果: string(1) "Y"

$value2 = '2019-XY';
$value2 = substr($value2, 5, 13);
var_dump($value2);

結果: string(2) "XY"

所以你需要計算以 position 0開頭的字符。

string:   2019-10
position: 0123456

如您所見,您的號碼從 position 5 (不是6 )開始。

另請注意,您使用13作為長度。 但是如果你的號碼總是兩位數,你應該使用:

$value2 = substr($value2, 5, 2);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM