Php foreach类别回波结果

Php foreach类别回波结果,php,mysql,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());

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

这就是我得到的:

$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>
                ";
                }
        }
$dataSQL=“按产品供应商、产品类别、产品代码ASC从产品处于活动状态的库存中选择*”;
$data=mysql\u query($dataSQL)或die(mysql\u error());
$rows=mysql\u num\u rows($data);
而($result=mysql\u fetch\u数组($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\ U reorder']-$result['product\ U soh'];
//从数据库输出行

如果($soh,您可以选择
不同的
产品供应商
。 因此,您的查询将变成:

SELECT DISTINCT ON product_supplier * 
FROM inventory 
WHERE product_active='Y' 
ORDER BY product_supplier, product_category, product_code ASC
或者,您可以在要消除重复项的列上使用
分组依据

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

你能给我们看一下你的输出吗?我相信你正在寻找一个
分组依据
,或者想要执行两个查询(一个选择供应商,一个选择产品)。mysql_*函数在PHP7中被弃用和删除-我建议迁移到PDO或mysqli(个人首选PDO)你想要的是一个控制中断…而且实现起来非常简单,你只需要将当前记录的相关值与前一个记录的相关值进行比较。如果它们相同,你就不会输出它。选项1出现错误并检查我的php版本。选项2显示没有结果。你能在数据库上运行查询吗ase级别第一?@Patrick这不是SQL-SQL不受php版本的影响第二个版本在mysql中工作。显示了更多缺货的项目,但我怀疑这是因为网页上有另一个不显示特定项目的条件。@Patrick您需要弄清楚为什么查询在数据库级别工作,而不是在php中工作代码。