首页 > 解决方案 > 订单号根据之前的号码自动创建

问题描述

我想要做的是创建一个自动订单号。所以就像这个订单的日期数所以今天的第一个订单将是今天的 20190719-01 第二个订单将是 20190719-02 等等。

然后明天它需要像20190720-01 20190720-02等等等等。

我怎样才能做到这一点?最好在 PHP 中

标签: php

解决方案


通常订单号是连续的,因此可以很容易地从 AUTO INCREMENT 字段中导出。在你的情况下,这并不容易。

您可以首先从数据库中获取今天之前所有订单的最高 AUTO INCREMENT 字段:

SELECT MAX(id) FROM orders WHERE DATE(orderDate) < CURDATE();

让我们称之为 id $offsetId。如果还没有订单,它应该是零。

然后先将订单信息插入数据库,这样就可以得到该id订单的。您可以使用$con->insert_idMySQLi 或PDO 中的lastInsertId()来执行此操作。让我们称之为$orderId.

以这种方式使用数据库的原因是为了防止两个订单获得相同的订单号。

现在您可以计算今天的订单号:

$orderNumber = date("Ymd") . "-" . sprintf('%02d', $orderId - $offsetId);

您可以按顺序将其存储在数据库中。

您可能应该预计每天有超过 99 个订单...


推荐阅读