Php 将一个添加到发票号(最多10个),然后停止
我有一个奇怪的问题,我正在使用下面的脚本从数据库中提取最后一个发票号,然后添加一个1,这很好……直到你得到10张发票,然后出于某种奇怪的原因,我只是一次又一次地得到10张发票号Php 将一个添加到发票号(最多10个),然后停止,php,max,Php,Max,我有一个奇怪的问题,我正在使用下面的脚本从数据库中提取最后一个发票号,然后添加一个1,这很好……直到你得到10张发票,然后出于某种奇怪的原因,我只是一次又一次地得到10张发票号 <?php $sqlinv = <<<SQL SELECT MAX(invoiceID) AS maxId FROM `sales` SQL; if(!$resultinv = $db->query($sqlinv)){ die('Ther
<?php
$sqlinv = <<<SQL
SELECT MAX(invoiceID) AS maxId FROM `sales`
SQL;
if(!$resultinv = $db->query($sqlinv)){ die('There was an error running the query [' . $db->error . ']');}
while($rowinv = $resultinv->fetch_assoc()){
$previousinvoiceID = $rowinv['maxId'];
}
$invoiceID = $previousinvoiceID +1;
echo $previousinvoiceID;
echo $invoiceID;
?>
$previousinvoiceID回显为9
$invoiceID以10的形式回显
如果我删除一些记录,它会再次正常工作,但当它达到10时,它会再次重复10,就好像它一直将9视为最高数字。检查maxId列的长度invoiceId是什么数据类型?请确保它是数值类型(如INT)而不是字符串类型(如(VAR)CHAR)。如果您处理的是顺序发票编号,则您选择的方法将不准确。您不能使用PHP找出最后一张发票是什么,然后将该数字增加1。可能有2个或更多的用户处理帐户和销售,这两个用户的最终编号可能与下一个发票编号相同。至于为什么会得到10,请发布
SHOW CREATE TABLE sales
的输出。我会在数据库中使用自动递增的数字,但问题是在发布表单之前,我需要在屏幕上查看发票号码。您无法获得该信息。这是不准确的。您可以看到可能的发票ID。即使使用自动增量也不能保证数字是连续的。此外,许多国家在打印发票收据时需要序列号。你看不到这个数字的原因是因为可能有两个人在卖商品。他们都看到最后一张发票号码是9。两人都将(正确地)计算出他们将得到10分。当他们屈服时,很容易看出会发生什么。