我正在建立一个带有电子发票的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的新手我只是不知道该怎么做...
有什么想法吗?
错误是
PARSE ERROR:SYNTAX ERROR,意外错误&#39;如果&#39; (T_IF)IN /HOME/LOCAL/PUBLIC_HTML/*******/SALES.PHP ON LINE 6
并且Dreamweaver将所有构建的$前缀标记为错误编码
不是重复的
这不是一个重复的问题。我需要的不仅是前导零,而且还要查看最后一张发票,并根据这一点来应用零点和链接到&#34;重复的&#34;由某人发布并不能解决问题因为不是同一类问题......
答案 0 :(得分:1)
如果您希望发票编号为8,可以这样做:
$invoice = sprintf("%08d", $invoice);
如果$ invoice为12,则为00000012
对于下一个auto_increment:
<?php
$req = $bdd->query("SHOW TABLE STATUS FROM table_name LIKE 'table_name' ");
$donnees = $req->fetch();
echo $donnees['Auto_increment'];
?>
答案 1 :(得分:-1)
对于那些找到类似解决方案的人,我自己发现了
$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"?>">
不需要并发症或阅读大量无用的东西