在列表中分组-php

在列表中分组-php,php,mysql,list,map,Php,Mysql,List,Map,我有一个mysql结果,你可以在下面看到。我想做一个基于商店的列表,我怎么能用PHP呢 SELECT shsv.shop_id, sv.shop, shsv.shop_product_id, shsv.shop_product, sum(shsv.cash) FROM turerp_db.shop_has_sale_view shsv left JOIN shop_view sv ON ( sv.shop_id = shsv.shop_id ) group by shsv.s

我有一个mysql结果,你可以在下面看到。我想做一个基于商店的列表,我怎么能用PHP呢

 SELECT shsv.shop_id, sv.shop, shsv.shop_product_id, shsv.shop_product, sum(shsv.cash) 
  FROM turerp_db.shop_has_sale_view shsv 
  left JOIN shop_view sv ON ( sv.shop_id = shsv.shop_id ) 
  group by shsv.shop_id, shsv.shop_product_id
ID店铺p_ID产品价格 10车间14产品322

11车间2 3产品2 2000

11车间2 5产品3 55

1号铺

产品1 商店2

产品2 产品3
您可以利用PHP数组的关联性:

var_dump$商店将打印:

array(2) {
  ["SHOP_1"]=>
  array(1) {
    [0]=>
    string(9) "PRODUCT_1"
  }
  ["SHOP_2"]=>
  array(2) {
    [0]=>
    string(9) "PRODUCT_2"
    [1]=>
    string(9) "PRODUCT_3"
  }
}
您还应该参考mysql驱动程序文档。它的某些方法可能会以类似的方式返回您的数据。

试试这个

$sql = mysql_query("SELECT * FROM tablename ORDER BY SHOP P_ID ASC");//your query
$cat = ""; //initialize $cat variable 
while($row = mysql_fetch_assoc($sql)){ 
if($row['SHOP P_ID '] != $cat) echo "<h3>".$row['SHOP P_ID ']."</h3>\r\n"; 
echo "<p>".$row['PRODUCT']."</p>\r\n"; 
$cat = $row['SHOP P_ID']; 
} 

我自己找到了解决方案,如果您有更好的解决方案,请与我们分享

$query = $this -> db -> query('SELECT shsv.shop_id, sv.shop, shsv.shop_product_id, shsv.shop_product, sum(shsv.cash) AS cash_total FROM turerp_db.shop_has_sale_view shsv left JOIN shop_view sv ON ( sv.shop_id = shsv.shop_id )  group by shsv.shop_id, shsv.shop_product_id');
        $shops= $query -> result();
        $count = 0;
        echo '<table>';
        foreach ($shops as  $shop) {
            if($count == 0){
                echo '<thead><tr><th colspan="2">'.$shop->shop.'</th></tr></thead>';
                echo '<tbody>';
                echo '<tr><td>'.$shop->shop_product.'</td><td>'.$shop->cash_total.'</td></tr>';
                $shop_id = $shop -> shop_id;
            }
            else {
                    if($shop_id == $shop -> shop_id){
                        echo '<tr><td>'.$shop->shop_product.'</td><td>'.$shop->cash_total.'</td></tr>';
                    }
                    else {
                        echo '</tbody>';
                        echo '<thead><tr><th colspan="2">'.$shop->shop.'</th></tr></thead>';
                        echo '<tbody>';
                        echo '<tr><td>'.$shop->shop_product.'</td><td>'.$shop->cash_total.'</td></tr>';
                    }
                    $shop_id = $shop -> shop_id;
            }

            $count++;
        }
        echo '</tbody>';
        echo '</table>';

您尝试过什么,您的查询是什么?“选择shsv.shop\u id,sv.shop\u product\u id,shsv.shop\u product,sumshsv.cash FROM turerp\u db.shop\u has\u sale\u view shsv left JOIN shop\u view sv ON sv.shop\u id=shsv.shop\u id组by shsv.shop\u id,shsv.shop\u product\u id;””map可以作为此建议的替代方案吗?
$query = $this -> db -> query('SELECT shsv.shop_id, sv.shop, shsv.shop_product_id, shsv.shop_product, sum(shsv.cash) AS cash_total FROM turerp_db.shop_has_sale_view shsv left JOIN shop_view sv ON ( sv.shop_id = shsv.shop_id )  group by shsv.shop_id, shsv.shop_product_id');
        $shops= $query -> result();
        $count = 0;
        echo '<table>';
        foreach ($shops as  $shop) {
            if($count == 0){
                echo '<thead><tr><th colspan="2">'.$shop->shop.'</th></tr></thead>';
                echo '<tbody>';
                echo '<tr><td>'.$shop->shop_product.'</td><td>'.$shop->cash_total.'</td></tr>';
                $shop_id = $shop -> shop_id;
            }
            else {
                    if($shop_id == $shop -> shop_id){
                        echo '<tr><td>'.$shop->shop_product.'</td><td>'.$shop->cash_total.'</td></tr>';
                    }
                    else {
                        echo '</tbody>';
                        echo '<thead><tr><th colspan="2">'.$shop->shop.'</th></tr></thead>';
                        echo '<tbody>';
                        echo '<tr><td>'.$shop->shop_product.'</td><td>'.$shop->cash_total.'</td></tr>';
                    }
                    $shop_id = $shop -> shop_id;
            }

            $count++;
        }
        echo '</tbody>';
        echo '</table>';