根据mysql ID号

时间:2016-07-31 01:53:16

标签: php html mysql html5 forms

我正在建立一个带有电子发票的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;由某人发布并不能解决问题因为不是同一类问题......

2 个答案:

答案 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"?>">

不需要并发症或阅读大量无用的东西