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「'?如果您只有一個項目,哪一個你有? –