数组1:array( [0] => array ( [cust_no] => 237033aw0a [lotno] => 3207 [lotno_count] => 360 ))数组2:array([su13061301033] => array ( [0] => array ( [0] => 2013-06-19 09:00:00 [1] => x02b [2] => 237033aw0a [3] => 15 [4] => 14 [5] => 210 ) )[su13061301032] => array ( [0] => array ( [0] => 2013-06-19 09:00:00 [1] => x02b [2] => 237033aw0a [3] => 15 [4] => 17 [5] => 255 ) )[su13061301037] => array ( [0] => array ( [0] => 2013-06-19 09:00:00 [1] => x11q [2] => 237033aw0a [3] => 15 [4] => 3 [5] => 45 ) [1] => array ( [0] => 2013-06-19 09:00:00 [1] => x11q [2] => 237033aw0a [3] => 15 [4] => 2 [5] => 30 ) ))数组3:array( [0] => su13061301033 [1] => su13061301032 [2] => su13061301037 )
数组1 代表 取得的总数量。
数组2 代表 stockno(su开头部分)时对应的数量,值为第[5]项。
数组3 代表 stockno 在数组中的序列。
能不能根据数组3的序列求得,
stockno为su13061301033时,对应数组1中的前210项对应stockno为su13061301033 ,
stockno为su13061301032时,对应数组1中的剩余的项对应stockno为su13061301033 。
依次类推这种情况。
是否存在这种对应关系?
回复讨论(解决方案) 您的 数组1 不就只有一组数据吗?
您的 数组1 不就只有一组数据吗?
这样就无法匹配是吗?数组1和数组3只有对应关系才能求得结果。
如果实在找不到对应关系的话就无法求得需要的值?
对应数组1中的 前210项 这个怎么说?
对应数组1中的 前210项 这个怎么说?
我的意思是数组3中的stockno排在前面的,比如第一项su13061301033,对应数组2中的值是210。然后用数组1中的总数量去分配210这个值,后面的stockno用总数量-210的结果再去分配下一组值。
ps:可能结果出了问题,所以我要重新查看下sql语句。稍晚再回复您。
如果用排队,倒是可以的
但关键还是在于你数据间的依赖性
如果用排队,倒是可以的
但关键还是在于你数据间的依赖性
好的。明天麻烦你指导下。
还需要你理清思绪路
贴数据时,请帖 var_export 的结果,而不是 print_r 的结果
与人方便,与己方便
结果存储的问题吧
还需要你理清思绪路
贴数据时,请帖 var_export 的结果,而不是 print_r 的结果
与人方便,与己方便
有三张表:kw_manage,vp_barcode_2d_y,stock_detail,分别对应库存,库存对应的批次lotno,出库信息。
库存以packageno为单位入库,通过vp_barcode_2d_y这张表求得入库的packageno对应的批次lotno及数量,cust_no,出库stock_detail含有信息stock_no,对应的关系:一个stock_no对应多个cust_no和对应的数量。
例如下:
su13061301012(stock_no) a2 2013-06-19 09:00:00 b12d(3) k25b460 237033aw0a(cust_no) 10 15 2013-06-15 15:00:00 2013-06-15 15:30:00su13061301012(stock_no) a2 2013-06-19 09:00:00 b12d(3) k25b459 237033aw0a(cust_no) 10 15 2013-06-15 15:00:00 2013-06-15 15:30:00
ps:图中数量为10*15 (箱数*每箱的个数)
也就是说stock_no和packageno之间没有必然联系,是否可以通过按批次lotno的先入先出来处理对应关系?
或者说你需要哪部分var_export的结果?
或略具体品种,即一下的讨论值针对单一的品种
入库时有 入库批次和数量 两个属性
出库时有 出库批次和数量 两个属性
你似乎是需要统计:在某个出库批次中都是由哪些入库批次构成的
我理解的对吗?
或略具体品种,即一下的讨论值针对单一的品种
入库时有 入库批次和数量 两个属性
出库时有 出库批次和数量 两个属性
你似乎是需要统计:在某个出库批次中都是由哪些入库批次构成的
我理解的对吗?
是这样。理解正确。
通常情况,我是先正常入库,再根据出库的要求(stock_detail表)用入库的信息来匹配要求。
入库:
create table `kw_manage` ( `id` int(11) not null auto_increment, `username` varchar(10) not null, `rkno` varchar(25) not null, `packageno` varchar(20) not null, `type` varchar(20) not null, `cust_no` varchar(20) not null, `snp` int(4) not null, `wh_info` varchar(20) not null, `date` datetime not null, primary key (`id`), key `packageno` (`packageno`), key `date` (`date`)) engine=myisam;insert into `kw_manage` values (1, 'admin', '201302190001', 'vp3.0 130219001', 'bem330-500', '23703 3aw0a', 15, 'ye-00-01', '2013-06-27 10:56:10');insert into `kw_manage` values (2, 'admin', '201302190001', 'vp3.0 130219002', 'bem330-500', '23703 3aw0a', 15, 'ye-00-01', '2013-06-27 10:56:12');insert into `kw_manage` values (3, 'admin', '201302190001', 'vp3.0 130219003', 'bem330-500', '23703 3aw0a', 15, 'ye-00-01', '2013-06-27 10:56:14');insert into `kw_manage` values (4, 'admin', '201302190001', 'vp3.0 130219004', 'bem330-500', '23703 3aw0a', 15, 'ye-00-01', '2013-06-28 08:45:20');insert into `kw_manage` values (5, 'admin', '201302190001', 'vp3.0 130219005', 'bem330-500', '23703 3aw0a', 15, 'ye-00-01', '2013-06-28 08:45:23');insert into `kw_manage` values (6, 'admin', '201302190001', 'vp3.0 130219006', 'bem330-500', '23703 3aw0a', 15, 'ye-00-01', '2013-06-28 08:45:26');insert into `kw_manage` values (7, 'admin', '201302190001', 'vp3.0 130219007', 'bem330-500', '23703 3aw0a', 15, 'ye-00-01', '2013-06-28 08:45:28');insert into `kw_manage` values (8, 'admin', '201302190001', 'vp3.0 130219008', 'bem330-500', '23703 3aw0a', 15, 'ye-00-01', '2013-06-28 08:45:30');insert into `kw_manage` values (9, 'admin', '201302190001', 'vp3.0 130219009', 'bem330-500', '23703 3aw0a', 15, 'ye-00-01', '2013-06-28 08:45:32');insert into `kw_manage` values (10, 'admin', '201302190001', 'vp3.0 130219010', 'bem330-500', '23703 3aw0a', 15, 'ye-00-01', '2013-06-28 08:45:35');insert into `kw_manage` values (11, 'admin', '201302190001', 'vp3.0 130219011', 'bem330-500', '23703 3aw0a', 15, 'ye-00-01', '2013-06-28 08:45:38');insert into `kw_manage` values (12, 'admin', '201302190001', 'vp3.0 130219012', 'bem330-500', '23703 3aw0a', 15, 'ye-00-01', '2013-06-28 08:45:42');insert into `kw_manage` values (13, 'admin', '201302190002', 'vp3.0 130219013', 'bem330-500', '23703 3aw0a', 15, 'ye-00-01', '2013-06-28 08:46:06');insert into `kw_manage` values (14, 'admin', '201302190002', 'vp3.0 130219014', 'bem330-500', '23703 3aw0a', 15, 'ye-00-01', '2013-06-28 08:46:09');insert into `kw_manage` values (15, 'admin', '201302190002', 'vp3.0 130219015', 'bem330-500', '23703 3aw0a', 15, 'ye-00-01', '2013-06-28 08:46:11');insert into `kw_manage` values (16, 'admin', '201302190002', 'vp3.0 130219016', 'bem330-500', '23703 3aw0a', 15, 'ye-00-01', '2013-06-28 08:46:13');insert into `kw_manage` values (17, 'admin', '201302190002', 'vp3.0 130219017', 'bem330-500', '23703 3aw0a', 15, 'ye-00-01', '2013-06-28 08:46:15');insert into `kw_manage` values (18, 'admin', '201302190002', 'vp3.0 130219018', 'bem330-500', '23703 3aw0a', 15, 'ye-00-01', '2013-06-28 08:46:18');insert into `kw_manage` values (19, 'admin', '201302190002', 'vp3.0 130219019', 'bem330-500', '23703 3aw0a', 15, 'ye-00-01', '2013-06-28 08:46:19');insert into `kw_manage` values (20, 'admin', '201302190002', 'vp3.0 130219020', 'bem330-500', '23703 3aw0a', 15, 'ye-00-01', '2013-06-28 08:46:22');insert into `kw_manage` values (21, 'admin', '201302190002', 'vp3.0 130219021', 'bem330-500', '23703 3aw0a', 15, 'ye-00-01', '2013-06-28 08:46:27');insert into `kw_manage` values (22, 'admin', '201302190002', 'vp3.0 130219022', 'bem330-500', '23703 3aw0a', 15, 'ye-00-01', '2013-06-28 08:46:30');insert into `kw_manage` values (23, 'admin', '201302190002', 'vp3.0 130219023', 'bem330-500', '23703 3aw0a', 15, 'ye-00-01', '2013-06-28 08:46:33');insert into `kw_manage` values (24, 'admin', '201302190002', 'vp3.0 130219024', 'bem330-500', '23703 3aw0a', 15, 'ye-00-01', '2013-06-28 08:46:36');insert into `kw_manage` values (25, 'admin', '201302190023', 'vp3.0 130219048', 'mec718-000', '23710 je22a', 15, 'yq-00-01', '2013-07-08 11:16:57');insert into `kw_manage` values (26, 'admin', '201302190023', 'vp3.0 130219049', 'mec718-000', '23710 je22a', 15, 'yq-00-01', '2013-07-08 11:17:01');insert into `kw_manage` values (27, 'admin', '201302190023', 'vp3.0 130219050', 'mec718-000', '23710 je22a', 15, 'yq-00-01', '2013-07-08 11:17:08');insert into `kw_manage` values (28, 'admin', '201302190023', 'vp3.0 130219051', 'mec718-000', '23710 je22a', 15, 'yq-00-01', '2013-07-08 11:17:13');insert into `kw_manage` values (29, 'admin', '201302190023', 'vp3.0 130219052', 'mec718-000', '23710 je22a', 15, 'yq-00-01', '2013-07-08 11:17:23');insert into `kw_manage` values (30, 'admin', '201302190023', 'vp3.0 130219053', 'mec718-000', '23710 je22a', 15, 'yq-00-01', '2013-07-08 11:17:30');insert into `kw_manage` values (31, 'admin', '201302190023', 'vp3.0 130219054', 'mec718-000', '23710 je22a', 15, 'yq-00-01', '2013-07-08 11:17:39');insert into `kw_manage` values (32, 'admin', '201302190023', 'vp3.0 130219055', 'mec718-000', '23710 je22a', 15, 'yq-00-01', '2013-07-08 11:17:54');
本着先进先出的原则,出库过程是这样的:
出库数量已知
遍历入库表,从 出库数量 中扣除当前入库批次的数量,直到 出库数量 小于等于 0
若 出库数量 为负,则将其绝对值加回去
本着先进先出的原则,出库过程是这样的:
出库数量已知
遍历入库表,从 出库数量 中扣除当前入库批次的数量,直到 出库数量 小于等于 0
若 出库数量 为负,则将其绝对值加回去
出库:
$sql4 = select arr_time,c_type,cust_no,snp,mount,mount*snp as m_total,stock_no from `.$t.` where stock_no = '.$stockno[$j-1].';// echo $sql4.'
'; $result4 = mysql_query($sql4); $ar = array(); while($var = mysql_fetch_array($result4,mysql_num)) { $ar[] = $var; } $a = array(); foreach ($ar as $item) { $key = array_pop($item); if (! isset($a[$key])) $a[$key] = array(); $a[$key][] = $item;}var_xeport的结果:array ( 'su13061301033' => array ( 0 => array ( 0 => '2013-06-19 09:00:00', 1 => 'x02b', 2 => '237033aw0a', 3 => '15', 4 => '14', 5 => '210', ), ), )
入库:
$sql = select distinct b.packageno,a.stock_no from `stock_detail` as a,`kw_manage` as b where a.stock_no = '.$stockno[$j-1].' and a.cust_no = replace( b.cust_no, ' ', '' );// echo $sql.'
'; $result = mysql_query($sql); $res = array(); //设置一个用于存放结果的数组 while($row = mysql_fetch_array($result,mysql_assoc)) { $sql2 = select lotno,count(lotno) from `vp_barcode_2d_y` where packageno = '.$row['packageno'].' group by lotno,packageno order by lotno asc;// echo $sql2.'
'; $result2 = mysql_query($sql2); $var = array(); while($row2 = mysql_fetch_array($result2,mysql_num)) { if(isset($res[$row2[0]])) $res[$row2[0]]['count'] += $row2[1]; else $res[$row2[0]] = array('lotno'=>$row2[0],'count'=>$row2[1]); } } ksort($res);// print_r($res); $arrs = array(); foreach($res as $v2) { $arrs[] = $v2; } var_export($arrs);结果:array ( 0 => array ( 'lotno' => '3207', 'count' => 360, ), )//这个结果是入库的总数量,是否要求得分别的数量?
你贴 入库 的代码是什么意思?
你贴 入库 的代码是什么意思?
不需要知道入库总量?如何去判定入库的批次已匹配过,不回出现在其他的stock_no的结果中?
你给的数据和代码不配套
unknown column 'arr_time' in 'field list'
刚才出库的数据没给全,贴不下了。现在补上。
create table `stock_detail` ( `id` int(11) not null auto_increment,`stock_no` varchar(20) not null,`adress` varchar(10) not null,`arr_time` datetime not null,`c_type` varchar(20) not null,`pu_no` varchar(20) not null,`cust_no` varchar(20) not null,`mount` int(10) not null,`snp` int(10) not null,`c1_time` datetime not null,`c2_time` datetime not null, primary key (`id`)) engine=myisam;insert into `stock_detail` values (42, 'su13061301029', 'b', '2013-06-20 22:00:00', 'p32l', 'k25k498', '310f61va5a', 9, 16, '2013-06-15 15:00:00', '2013-06-15 15:30:00');insert into `stock_detail` values (43, 'su13061301029', 'b', '2013-06-20 22:00:00', 'p32l', 'k25k497', '310f61va5a', 10, 16, '2013-06-15 15:00:00', '2013-06-15 15:30:00');insert into `stock_detail` values (44, 'su13061301031', 'a1', '2013-06-20 09:00:00', 'x02b', 'k25b418', '237033aw0a', 14, 15, '2013-06-15 15:00:00', '2013-06-15 15:30:00');insert into `stock_detail` values (45, 'su13061301030', 'a1', '2013-06-20 09:00:00', 'x02b', 'k25b417', '237033aw0a', 17, 15, '2013-06-15 15:00:00', '2013-06-15 15:30:00');insert into `stock_detail` values (46, 'su13061301033', 'a1', '2013-06-19 09:00:00', 'x02b', 'k25b416', '237033aw0a', 14, 15, '2013-06-15 15:00:00', '2013-06-15 15:30:00');insert into `stock_detail` values (47, 'su13061301032', 'a1', '2013-06-19 09:00:00', 'x02b', 'k25b415', '237033aw0a', 17, 15, '2013-06-15 15:00:00', '2013-06-15 15:30:00');insert into `stock_detail` values (48, 'su13061301034', 'a1', '2013-06-19 09:00:00', 'x11q', 'k25b407', '237033aw0a', 6, 15, '2013-06-15 15:00:00', '2013-06-15 15:30:00');insert into `stock_detail` values (49, 'su13061301034', 'a1', '2013-06-19 09:00:00', 'x11q', 'k25b408', '237033aw0a', 9, 15, '2013-06-15 15:00:00', '2013-06-15 15:30:00');insert into `stock_detail` values (50, 'su13061301035', 'a1', '2013-06-20 09:00:00', 'x11q', 'k25b409', '237033aw0a', 7, 15, '2013-06-15 15:00:00', '2013-06-15 15:30:00');insert into `stock_detail` values (51, 'su13061301035', 'a1', '2013-06-20 09:00:00', 'x11q', 'k25b410', '237033aw0a', 9, 15, '2013-06-15 15:00:00', '2013-06-15 15:30:00');insert into `stock_detail` values (52, 'su13061301036', 'a1', '2013-06-20 09:00:00', 'x11q', 'k25b434', '237033aw0a', 3, 15, '2013-06-15 15:00:00', '2013-06-15 15:30:00');insert into `stock_detail` values (53, 'su13061301036', 'a1', '2013-06-20 09:00:00', 'x11q', 'k25b433', '237033aw0a', 2, 15, '2013-06-15 15:00:00', '2013-06-15 15:30:00');insert into `stock_detail` values (54, 'su13061301037', 'a1', '2013-06-19 09:00:00', 'x11q', 'k25b431', '237033aw0a', 3, 15, '2013-06-15 15:00:00', '2013-06-15 15:30:00');insert into `stock_detail` values (55, 'su13061301037', 'a1', '2013-06-19 09:00:00', 'x11q', 'k25b432', '237033aw0a', 2, 15, '2013-06-15 15:00:00', '2013-06-15 15:30:00');insert into `stock_detail` values (56, 'su13061500001', 'a1', '2013-06-20 09:00:00', 'l11k', 'c6e0085', '23703ex80a', 2, 15, '2013-06-15 15:00:00', '2013-06-15 15:30:00');insert into `stock_detail` values (57, 'su13061500002', 'a1', '2013-06-20 09:00:00', 'x11q', 'c6e0084', '237033aw0a', 1, 15, '2013-06-15 15:00:00', '2013-06-15 15:30:00');
你给的数据和代码不配套
unknown column 'arr_time' in 'field list'
烦见20#
本着先进先出的原则,出库过程是这样的:
出库数量已知
遍历入库表,从 出库数量 中扣除当前入库批次的数量,直到 出库数量 小于等于 0
若 出库数量 为负,则将其绝对值加回去
烦请举个例子吧,对这句话的意思不理解。
遍历入库表,从 出库数量 中扣除当前入库批次的数量