簡體   English   中英

MySQl 前導零被存儲但顯示錯誤

[英]MySQl leading zeros get stored but wrong display

我正在嘗試在 MySQL 中使用多種類型的字段來僅存儲數字,嘗試使用 INT、BIGINT 與前導零、CHAR 和 VARCHAR 來存儲發票號碼

我需要發票編號以 0000000001 開頭,我手動將其存儲在 PHPmyadmin 中

現在我想顯示它,但我沒有得到前導零......

這是數據庫

字段“folio”CHAR 15 存儲我手動做了 0000000001 它在 phpmyadmin 上顯示正常

但問題就在這里

<?php $maxprod=mysqli_query($datacenter, 
"SELECT * FROM ventas 
WHERE documento = 'boleta' 
ORDER BY id DESC LIMIT 1");
while($lastcode=mysqli_fetch_assoc($maxprod)){?>


<input type="text" value="<?php echo $lastcode['folio']+1?>">
   <?php }?>

查詢的結果是 1 只是 1 它不顯示所有其他零

知道為什么嗎?

echo $lastcode['folio']應該顯示帶有前導零的結果,而不是$lastcode['folio']+1

只要你這樣做+1 ,結果就不再是一個字符串。 $lastcode['folio']變量被轉換為一個數字,以便對其進行算術運算。

前導零只是格式化,不需要與數字一起存儲。 如果你需要一個自動遞增的數字,只需在 MySQL 中使用一個自動遞增的整數,並在打印出來時用前導零格式化數字。

如果您對它執行任何數字運算,PHP 會自動將字符串轉換為數字。 但是您可以將訂單號保留為整數形式,並在必要時用零填充它:

str_pad($lastcode['folio']+1, 15, "0", STR_PAD_LEFT);

這將檢索數字作為字符串以將其顯示為文本。
稍后您可以在您的編碼環境中操作它。

SELECT CAST(document_number AS CHAR) FROM ...

暫無
暫無

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

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