foreach类别回显结果

时间:2018-10-23 12:19:28

标签: php mysql

我试图按顺序列出我的供应商,并在我的供应商下方显示需要订购的物品。但是最初提供给我的脚本每次都会列出供应商。

这就是我所拥有的:

$dataSQL = "SELECT * FROM inventory WHERE product_active='Y' ORDER BY product_supplier, product_category, product_code ASC";

        $data = mysql_query($dataSQL) or die(mysql_error());  
        $rows = mysql_num_rows($data); 

        while($result = mysql_fetch_array( $data )) { 

            $category=$result['product_category'];
            $id=$result['id'];
            $item1=$result['product_name'];
            $code1=$result['product_code'];
            $code2=$result['product_suppliercode'];
            $soh=$result['product_soh'];
            $reorder=$result['product_reorder'];
            $supplier=$result['product_supplier'];
            $order=$result['product_reorder']-$result['product_soh'];

            // output row from database
            if($soh<$reorder) {
                echo "
                <tr><td>$supplier</td><td>SOH $soh | Order $order</td></tr>
                <tr><td>$item1</td><td>$code1</td></tr>
                ";
                }
        }

但是,如果来自1个供应商的产品缺货不止一种,我只想列出一次供应商,而不是每次都列出。

这是当前结果: 低/缺货报告 商业用品SOH 3 |订单1 白色保暖旅行杯0000000001030 SOH办公室工作14 |订单1 Frixion邮票咖啡杯(橙色)4902505508073 办公室工作SOH 0 |订单1 Frixion邮票苹果4902505508103 PHE(纸张处理设备)SOH |订单1 20mm 100pk塑料装订梳 (框) 0000000004115

(对不起,不确定如何在此处以表格格式显示)。最终结果将是一次显示供应商名称,然后在下一行显示项目,代码,SOH和重新订购

1 个答案:

答案 0 :(得分:0)

您可以选择DISTINCT product_supplier。 因此您的查询将变为:

SELECT DISTINCT ON product_supplier * 
FROM inventory 
WHERE product_active='Y' 
ORDER BY product_supplier, product_category, product_code ASC

或者,您可以在要消除重复项的列上使用GROUP BY

SELECT  * 
FROM inventory 
WHERE product_active='Y' 
GROYP BY product_supplier
ORDER BY product_supplier, product_category, product_code ASC