[英]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.