【发布时间】:2021-05-03 03:51:30
【问题描述】:
希望每个人都做得很好。我正在尝试在多用户环境中生成增量订单/发票编号
此代码适用于单用户环境。但是如何在多用户环境中实现相同的目标。
例如,有两个用户(用户 A 和用户 B)
用户 A 生成了两张发票,那么订单/发票编号将是这样的 INV-0000001, INV-0000002
用户 B 生成了三张发票,那么订单/发票编号将是这样的 INV-0000001、INV-0000002、INV-0000003
用户表 user_id 是自增主键
User_id | user_name | user_email | user_pass
1 | xyz | xyz | xyz
2 | xyz | xyz | xyz
销售表
sale_id 是一个自动递增的主键,而 sale 表中的 user_id 充当外键 假设有一个 invoice_number 列!这就是我想要实现的目标
sale_id | user_id | invoice_number | sale_customer_name and so on
1 | 1 | INV-0000001 | xyz
2 | 1 | INV-0000002 | xyz
3 | 2 | INV-0000001 | xyz
4 | 2 | INV-0000002 | xyz
5 | 2 | INV-0000003 | xyz
sale_id 是一个自动递增的 id
$select_invoice = "select * from sale where user_id='$user_id' order by sale_id desc limit 0,1";
$select_invoice_query = mysqli_query($connection, $select_invoice);
$invoice_array = mysqli_fetch_assoc($select_invoice_query);
$invoice_result = $invoice_array['sale_id'];
$invoice_result++;
$invoice_result = "INV-".str_pad($invoice_result, 7, "0", STR_PAD_LEFT);
【问题讨论】:
-
sale_id 是做什么用的?
-
sale_id 是一个自动递增的 id。 @Psycho
-
这不是问题。当用户没有任何发票时,您将得不到任何结果。在这种情况下,您将手动从 1 开始。
-
您能否通过编辑您的问题来提供您的表格的定义?
-
阿汉!我现在明白你的意思了!所以这基本上会从每个用户的 0000001 开始发票编号,对吧? @El_Vanja