Php 在mysql中以何种方式创建此清单

Php 在mysql中以何种方式创建此清单,php,mysql,count,stock,Php,Mysql,Count,Stock,我正在尝试基于一些mysql表和表单创建一个web应用程序 我有一个添加发货页面,在该页面中,用户添加了产品列表和发票号,因此在我的发货_产品表中 id invoice_no product_code qty 1 34 HP222 4 2 34 HL234 1 我还有一个已售出页面,在该页面中,用户添加了从其库存中售出的产品列表,因此表已售出的产品如下所示 id invoice_no product_code qty 1

我正在尝试基于一些mysql表和表单创建一个web应用程序

我有一个添加发货页面,在该页面中,用户添加了产品列表和发票号,因此在我的发货_产品表中

id invoice_no product_code qty
1     34          HP222     4
2     34          HL234     1
我还有一个已售出页面,在该页面中,用户添加了从其库存中售出的产品列表,因此表已售出的产品如下所示

id invoice_no product_code qty
1    1           HP222      2
2    34          HL234      1
我需要第三个名为Stock in的表,我必须在其中获取库存项目的总数,但我一直在研究如何基于这两个现有表自动生成它,然后保持更新


有什么建议吗

我认为你想要的并不像你想抄近路那么简单。首先,如果您的公司正在处理先进先出与后进先出的存货,您可以根据给定供应商在给定采购时间的成本,将存货从盘点中剔除,因为它们可用于COGS(销售商品成本)

您可能只需要有一个采购表来显示收到的每一件商品和数量,然后,随着商品的销售,有另一个表来显示每一次采购收到的可用数量的减少。考虑到这样一个简单的场景,这有点棘手

从供应商处购买10件产品“X”,然后不久再购买4件产品“X”。共14人。 现在,对于销售活动,您有一个订单销售3,然后是2,然后是4,然后是3。共售出14件中的12件,但无论以何种方式计算先进先出与后进先出,都会有一个分割,其中的数量是从最初的购买中计算出来的。。。例:FIFO将从最初的10个阶段开始计算,然后是4个阶段

10 purchase
10 - 3 = 7
7 - 2 = 5
5 - 4 = 1
1 - 3 = -2 -- WRONG... Only 1 of the 3 against the original 10 purchase
1 - (1 of 3) = 0
4 purchase
4 - (remaining 2 of 3) = 2  -- here is the remaining 2 entries from the last sale, leaving 2 left in inventory.

因此,没有绝对的表结构可以处理,但我认为您应该检查库存管理需求可能需要它们

我将尝试更好地解释它。 对不起,我的英语不好

我现在有一个表
received
,其中特定发票中的每一项都是在它到达时添加的,所以假设今天我们收到了一些项目,3项,唯一的
发票id
发货id
(实际上并不重要)是S1。在收到的
表格中
我有

id发货\u id产品\u代码数量
1 S1 HL223 2
2 S1 XLS21 1
3 S1 BenqWHL 1

我有另一个类似的表,名为
salled
,其工作方式相同,我按产品的
product\u code
添加一个项目列表,并为销售提供一个ID(用于其他目的)。因此,
salled
表如下所示:

id已售出\u id产品\u代码数量
1 B1 HL223 1
2 B1 XLS21 1

现在,我只需要查看库存中的商品,或者通过创建一个表,在其中存储按其唯一产品代码分组的商品,并将条目作为数量进行计数,然后在进行销售时,我可以减去此表中售出的数量
库存


我不在乎发票号码或ID、用户等。

这是一种不好的方式,但至少是开始的方式

制作一个表:库存/库存或具有下一个结构的东西:ID、Item\u ID、Item\u quantity

采购/接收时,在此表中添加一个数量为正的行。 销售/输出时,在此表中添加一行负数量。
要计算库存,请使用特定物料id的sum()执行查询。

以便每张发票只能销售一种产品?如果只考虑单个供应商,您似乎仍然需要发票表。不,可以销售任意数量的产品。我把“发票号”放在第二个表中,但忽略它。我只需要为每个项目创建一个“库存数量”表,但我很难根据“发货产品”表中的条目来创建它。我知道我可以使用count并按名称对它们进行分组并获得数量,但我如何动态创建一个表?这些产品的发票号是否已售出?总数肯定是在库存表中输入的金额,销售数量是通过更新库存表减去数量并将数量添加到发货产品表中得到的?如果是这样,您的代码或(在SQL中)应该使用。