1
我正在尝试根据数据库中的信息创建数据包。根据维数创建数据包
数据库的组织是这样的:
ID ORDERID DIMENSION QUANTITY
1 21 8400 25
2 21 7200 8
3 21 4300 5
4 21 3800 7
第一件事,从数据库
$sql = "SELECT ID, ORDERID, DIMENSION, QUANTITY FROM dimension WHERE ORDERID = 21 ORDER BY DIMENSION DESC";
$q = $conn => query($sql);
while($r = $q->tech()){
$dim =$r['DIMENSION '];
$quant =$r['QUANTITY '];
}
然后,我从另一个表中检索数据,为前获取信息。我得到10号
$query = "SELECT QUANTITY FROM panel WHERE ID = 21;
$q = $conn->query($query);
while ($r=$q->fetch()){
$number = 10;
}
使从最长尺寸包装是非常重要的。
例如,我有尺寸8400的数量25.面板的最大数量是10,这意味着我将有两个数据包,每10个面板将保留5个。 5进入下一个维度,我们将该面板的最大数量达到$数量。剩余的维度进入下一个维度,并保持这种状态。
一旦我得到的所有信息,我需要做包装,最后包装解决方案应该是
-------------------
8400 x 10 - Packet1
-------------------
8400 x 10 - Packet2
-------------------
8400 x 5
7200 x 5 - Packet3
-------------------
7200 x 3
4300 x 5
3800 x 2 - Packet4
-------------------
3800 x 5 - Packet 5
-------------------
一旦我得到这个数据,我应该将其插入到数据库 其中8400是尺寸,10,面板,“Packet1” - 名称
我被卡住了,不知道如何执行此操作。我不知道算法是否存在。
这正是我一直在寻找。一旦我得到这些信息,我需要将它存储在数据库中。我的表是有组织的ID | ORDERID | DIMENSION | QUANTITY |名称。我有订单ID,角钱(8400)和数量10.订单名称可以是第一组Packet1,第二组Packet2,对于第三种情况,Packet3对于这两个组将是相同的名称8400和7200.它增加1。是可能的。谢谢 –