Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将一个添加到发票号(最多10个),然后停止_Php_Max - Fatal编程技术网

Php 将一个添加到发票号(最多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

我有一个奇怪的问题,我正在使用下面的脚本从数据库中提取最后一个发票号,然后添加一个1,这很好……直到你得到10张发票,然后出于某种奇怪的原因,我只是一次又一次地得到10张发票号

      <?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分。当他们屈服时,很容易看出会发生什么。