程序中是这样关联的。首先得到stockno的值,再求得对应的cust_no,通过cust_no求得对应的lotno的总数量。 代码2-26行有体现。至于怎么将$arrs和$a相关联,能不能这样,将求得的stockno的结果排序,然后将$arrs按排序的结果赋给$a?stockno的排序代码:$sql = "select count(*) from (select stock_no,count(stock_no) from `".$t."` where adress like 'A%' group by stock_no) as temp"; $result = mysql_query($sql); $row = mysql_fetch_array($result); $sql2 = "SELECT stock_no FROM `stock_detail` WHERE adress LIKE 'A%' GROUP BY stock_no ORDER BY adress, arr_time, c_type ASC"; $result2 = mysql_query($sql2); $var = array(); while($row1 = mysql_fetch_array($result2,MYSQL_NUM)) { $var[] = $row1; } for($x=0;$x<=$row['0'];$x++) { if($var[$x][0] == $stockno) echo ($x+1); }
stockno和cust_no(零件号码)是通过表`stock_detail`对应的,一对一或者一对多的关系。cust_no(零件号码) 的数量是 通过 库存表`kw_manage` 得到的,求得该cust_no对应的库存总量。再依据该cust_no的库存总量来分配对应的stockno对应的cust_no(零件号码)的数量。
print_r($arrs);//求得该cust_no对应的库存总量Array ( [0] => Array ( [lotno] => 3207 [count] => 240 ) ) 代码第34行
print_r($a);//结果是stockno和cust_no的对应关系,此例中是1对2的关系Array([0]=>Array([0]=>2013-05-13 09:00:00 [1]=>L11K [2]=>23703EX80A [3]=>15 [4]=>8 [5]=>120) [1]=>Array([0]=>2013-05-13 09:00:00 [1]=>L11K [2]=>23703EX80A [3]=>15 [4]=>9 [5]=>135)
print_r($arrs);//求得该cust_no对应的库存总量Array ( [0] => Array ( [lotno] => 3207 [count] => 240 ) [1] => Array ( [lotno] => 3209 [count] => 165 ) [2] => Array ( [lotno] => 3210 [count] => 360 )) 代码第34行
print_r($a);//结果是stockno和cust_no的对应关系,此例中是1对2的关系当stockno = 1时:
Array([0]=>Array([0]=>2013-05-13 09:00:00 [1]=>L11K [2]=>23703EX80A [3]=>15 [4]=>8 [5]=>120) [1]=>Array([0]=>2013-05-13 09:00:00 [1]=>L11K [2]=>23703EX80A [3]=>15 [4]=>9 [5]=>135))当stockno = 2时:
Array([0]=>Array([0]=>2013-05-13 09:00:00 [1]=>L11K [2]=>23703EX80A [3]=>15 [4]=>10 [5]=>150) [1]=>Array([0]=>2013-05-13 09:00:00 [1]=>L11K [2]=>23703EX80A [3]=>15 [4]=>10 [5]=>150))....依次类推应该得到的结果:
当stockno = 1时:紫色第一行: 3207 * 120紫色第二行: 3207 * 120<br />3209 * 15当stockno = 2时:紫色第一行: 3209 * 150紫色第二行: 3210 * 150....依次类推至stockno = n 。像这样的结果。
0 => Array ( 'lotno' => 3207, 'count' => 240 ),
1 => Array ( 'lotno' => 3209, 'count' => 165 ),
2 => Array ( 'lotno' => 3210, 'count' => 360 ),
);
$a = Array(
0 => Array(0 => '2013-05-13 09:00:00', 1 => 'L11K', 2 => '23703EX80A', 3 => 15, 4 => 8, 5 => 120),
1 => Array(0 => '2013-05-13 09:00:00', 1 => 'L11K', 2 => '23703EX80A', 3 => 15, 4 => 9, 5 => 135),
2 => Array(0 => '2013-05-13 09:00:00', 1 => 'L11K', 2 => '23703EX80A', 3 => 15, 4=> 10, 5 => 150),
3 => Array(0 => '2013-05-13 09:00:00', 1 => 'L11K', 2 => '23703EX80A', 3 => 15, 4=> 10, 5 => 150),
);
两组数据不对等,如何知道 stockno 谁是谁?
原来的情况是这样的,
$stockno = explode(","$_GET['stockno']);
for($j = 0;$j< count($stockno);$j++)
{
//将1#代码放入此循环中;
}能不能把数据看成这样?$arrs = Array (
0 => Array ( 'lotno' => 3207, 'count' => 240 ),
1 => Array ( 'lotno' => 3209, 'count' => 165 ),
2 => Array ( 'lotno' => 3210, 'count' => 360 ),
);
$a = Array(stockno1 =>
Array(
0 => Array(0 => '2013-05-13 09:00:00', 1 => 'L11K', 2 => '23703EX80A', 3 => 15, 4 => 8, 5 => 120))
1 => Array(0 => '2013-05-13 09:00:00', 1 => 'L11K', 2 => '23703EX80A', 3 => 15, 4 => 9, 5 => 135))),
Array(stockno2 =>
Array(
0 => Array(0 => '2013-05-13 09:00:00', 1 => 'L11K', 2 => '23703EX80A', 3 => 15, 4=> 10, 5 => 150),
1 => Array(0 => '2013-05-13 09:00:00', 1 => 'L11K', 2 => '23703EX80A', 3 => 15, 4=> 10, 5 => 150))
);
或者这样:
$arrs = Array (
0 => Array ( 'lotno' => 3207, 'count' => 240 ),
1 => Array ( 'lotno' => 3209, 'count' => 165 ),
2 => Array ( 'lotno' => 3210, 'count' => 360 ),
);
$a = Array(
stockno1 =>
Array(
0 => Array(5 => 120),
1 => Array(5 => 135)),
Array(
stockno2 =>
Array(
0 => Array(5 => 150),
1 => Array(5 => 150))
);
0 => Array ( 'lotno' => 3207, 'count' => 240 ),
1 => Array ( 'lotno' => 3209, 'count' => 165 ),
2 => Array ( 'lotno' => 3210, 'count' => 360 ),
);
$a = Array(
stockno1 =>
Array(
0 => Array(5 => 120),
1 => Array(5 => 135)),
stockno2 =>
Array(
0 => Array(5 => 150),
1 => Array(5 => 150))
);
程序中是这样关联的。首先得到stockno的值,再求得对应的cust_no,通过cust_no求得对应的lotno的总数量。
代码2-26行有体现。至于怎么将$arrs和$a相关联,能不能这样,将求得的stockno的结果排序,然后将$arrs按排序的结果赋给$a?stockno的排序代码:$sql = "select count(*) from (select stock_no,count(stock_no) from `".$t."` where adress like 'A%' group by stock_no) as temp";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$sql2 = "SELECT stock_no FROM `stock_detail` WHERE adress LIKE 'A%' GROUP BY stock_no ORDER BY adress, arr_time, c_type ASC";
$result2 = mysql_query($sql2);
$var = array();
while($row1 = mysql_fetch_array($result2,MYSQL_NUM))
{
$var[] = $row1;
}
for($x=0;$x<=$row['0'];$x++)
{
if($var[$x][0] == $stockno)
echo ($x+1);
}
因为你实际输出的是 $a, 所以你应该在取得 $a 后再去求取与之对应的 $arrs
这样合乎常理,也就很容易输出了