我在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它不显示所有其他零
知道为什么吗?
答案 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 ...