我尝试了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—它不显示所有其他零
知道为什么吗?
3条答案
按热度按时间mwyxok5s1#
这将检索字符串形式的数字,并将其显示为文本。
稍后您可以在您的编码环境中操作它。
dba5bblo2#
echo $lastcode['folio']
应该用前导零显示结果,但不是$lastcode['folio']+1
.一旦你这么做了
+1
,结果不再是字符串。这个$lastcode['folio']
变量被转换成一个数字,以便对其进行算术运算。前导零只是格式化,不需要与数字一起存储。如果您需要一个自动递增的数字,只需在mysql中使用一个自动递增整数,并在打印时用前导零格式化数字。
s5a0g9ez3#
如果对字符串执行任何数字操作,php会自动将其转换为数字。但您可以将订单号保留为整数形式,必要时用零填充:
str_pad($lastcode['folio']+1, 15, "0", STR_PAD_LEFT);