1
我有一个包含15个字符的零件号码的表格,在此字符串中有一个数字中包含4个不同的功能。我正在对表格进行查询,然后删除不同的数字串以便在其他表格中使用。我遇到的问题是有多个具有相同值的子字符串。然后通过我的物料清单表来运行它,以获得使整个零件成为所需的数量。但是,当我想让它返回所有重复项的总和时,它会返回重复项。从两个表中添加具有相同名称的数量
这是我在做什么:
$result = mysql_query("SELECT * FROM $table WHERE `active` = '1'");
while ($r = mysql_fetch_assoc($result)) {
$bucket_back_num = substr($r['part_num'],0,7);
$bucket_bottom_num = substr($r['part_num'],0,7);
$hooks_part_num = substr($r['part_num'],7,11-7);
$grapple_part_num = substr($r['part_num'],11,15-11);
$bucket_back_num .= $grapple_part_num;
$result2 = mysql_query("SELECT *,sum(qty) as qty from bucket_part_bom WHERE `parent_part_num` = '$bucket_back_num' GROUP BY parent_part_num");
while ($r2 = mysql_fetch_assoc($result2)) {
echo '
<tr>
<td style="width: 15%;">'.$r2['part_num'].'</td>
<td style="width: 25%; text-align: left;">'.$r2['desc'].'</td>
<td style="width: 15%;">'.$r2['qty'].'</td>
<td style="width: 15%;">Unpainted</td>
<td style="width: 10%;">Diff</td>
<td style="width: 10%;">Build</td>
<td style="width: 10%;">N/A</td>
</tr>
';
}
}
什么被退回:
LM102BRBK Bucket Back 102" Light Material Bare 1
LM1023XBK Bucekt Back 102" Light Material, GF3X 1
LM1023XBK Bucekt Back 102" Light Material, GF3X 1
做什么你想要返回吗? – Barmar
每次打印行时,都要将零件号添加到数组中。然后在打印行之前,检查零件号是否已经在数组中,如果是,则跳过它。 – Barmar
这里有几个警告:1)即使在这里,您也应该使用准备好的语句。 (不幸的是,您不能将它用于'$ table',但需要对白名单进行检查)。 2)不在GROUP BY /聚合函数中的每个列都会得到一个不确定的(对你)值。例如 - 在正在返回的行中,这是正确的描述,“Bucket Back 102”Light Material Bare“'”或“Bucekt Back 102”Light Material,GF3X“'?如果您只有一个项目,哪一个你有? –