MySQl前导零存储但显示错误

时间:2018-04-19 16:16:17

标签: php html mysql database mysqli

我在MySQL中尝试了许多类型的字段来存储数字,尝试使用INT,BIGINT使用前导零,CHAR和VARCHAR来存储发票号码

我需要以0000000001开头的发票号码,我手动将其存储在PHPmyadmin中

现在我想显示它,我不会得到前导零....

这是数据库

字段“对开”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它不显示所有其他零

知道为什么吗?

3 个答案:

答案 0 :(得分:0)

echo $lastcode['folio']应该显示带有前导零的结果,但不会显示$lastcode['folio']+1

一旦执行+1,结果就不再是字符串。 $lastcode['folio']变量将转换为数字,以便对其进行算术运算。

前导零只是格式化,不需要与数字一起存储。如果你需要一个自动增量数字,只需在MySQL中使用自动增量整数,并在打印时用前导零格式化数字。

答案 1 :(得分:0)

如果您对字符串执行任何数字操作,PHP会自动将字符串转换为数字。但是你可以保持整数形式的订单号,并在必要时用零填充它:

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

答案 2 :(得分:-2)

这将检索数字作为字符串显示为文本。
稍后,您可以在您的编码环境中对其进行操作。

SELECT CAST(document_number AS CHAR) FROM ...