我正在用电子发票构建一个POS,因为发票编号将以1开头,并且显示发票编号很难看:1我想构建一些添加00000作为前缀的东西,比如这个
$lastinvoice = mysqli_query($db, "SELECT * FROM `sales`
order by `id` DESC LIMIT 1");
$last_invoice = mysqli_fetch_assoc($lastinvoice);
$invoice = $last_invoice['id']+1;
构建前缀
$prefix=if (($invoice)<10){echo '0000000'};
elseif (($invoice)<100){echo '000000'};
elseif (($invoice)<1000){echo '00000'};
elseif (($invoice)<10000){echo '0000'};
elseif (($invoice)<100000){echo '000'};
elseif (($invoice)<1000000){echo '00'};
elseif (($invoice)<10000000){echo '0'};
现在,在HTML表单中,我提交了一个隐藏的输入,如
<input type="hidden" name="set_invoice"
value="<?php echo "$prefix$invoice"?>">
我在构建前缀时遇到了错误,它做得不好,但因为我是PHP新手,我不知道如何做到这一点。。。
有什么想法吗?
错误为
解析错误:语法错误,/HOME/LOCAL/PUBLIC_HTML/*******/SALES中出现意外的"IF"(T_IF)。PHP在第6行
Dreamweaver将所有构建的$前缀标记为错误编码的
不是重复的
这不是一个重复的问题。我需要的不仅仅是前导零,而是检查最后一张发票,并据此应用零的数量和某人发布的"重复"链接并不能解决问题,因为这不是同一类问题。。。
如果你想让你的发票号码为8,你可以这样做:
$invoice = sprintf("%08d", $invoice);
如果$发票是12,它将是00000012
对于下一个自动修正:
<?php
$req = $bdd->query("SHOW TABLE STATUS FROM table_name LIKE 'table_name' ");
$donnees = $req->fetch();
echo $donnees['Auto_increment'];
?>
对于那些找到类似解决方案的人,我自己找到了
$lastinvoice=mysqli_query($db, "SELECT * FROM `sales`
order by `id` DESC LIMIT 1");
$last_invoice=mysqli_fetch_assoc($lastinvoice);
然后我们构建前缀
$invoice=$last_invoice['id']+1;
if ($invoice <'10'){$invoice = "0000000$folio";}
elseif ($invoice <'100'){$invoice = "000000$invoice";}
elseif ($invoice <'1000'){$invoice = "00000$invoice";}
elseif ($invoice <'10000'){$invoice = "0000$invoice";}
elseif ($invoice <'100000'){$invoice = "000$invoice";}
elseif ($invoice <'1000000'){$invoice = "00$invoice";}
elseif ($invoice <'10000000'){$invoice = "0$invoice";}
elseif ($invoice <'100000000'){$invoice = "$invoice";}
最后,我们将输入设置为隐藏或文本等,如
<input type="hidden" name="set_invoice"
value="<?php echo "$invoice"?>">
无需复杂或阅读大量未经讨论的内容