将my_ MySQL中的值分组,以基于某些条件</div>在单独的<div>中显示

时间:2012-12-01 04:33:43

标签: php html mysql

我正在开发一个以MySQL为数据库的php项目。这是表结构

product_id (PK)
shop_id (FK)
product_name
product_desc

Product_id是主键,shop_id是外键(显示产品属于哪个商店)。现在我想选择这些产品并将其显示在<div>中。对于每个商店产品,我想显示不同的<div>。例如,如果有三个产品说p1,p2和p3,并且它们具有相同的shop_id(比方说)1,我希望它们显示在单独的<div>中。每个shop_id都会有单独的<div>,属于该shop_id的所有产品都会显示在<div>中。如何使用My_SQL查询或使用PHP执行此操作。我使用了这样一个简单的SELECT查询,但是我找不到一种方法来为不同的商店启动不同的<div>

$q = mysql_query("SELECT * FROM table");
echo "<div>";
while($product = mysql_fetch_assoc($q)){
echo $product['product_name']."<br/>";
}
echo "</div>";

它只是将所有产品投入一次潜水,我想要单独的商店(包含该商店的所有产品)的单独div。谢谢你的阅读..

1 个答案:

答案 0 :(得分:1)

最简单的方法是将产品按ID分组并循环遍历

$all_products = array();
while($product = mysql_fetch_assoc($q)){
    $all_products[$product['shop_id']][] = $product;
}

foreach($all_products as $shop_id => $product_array){
echo "<div id='shop_".$shop_id."'>";
   foreach($product_array as $product){
      echo $product['product_name']."<br/>";
    }
echo "</div>";
}

或致电每个店铺ID的产品数据

$q = mysql_query("SELECT * FROM shops");

while($shops = mysql_fetch_assoc($q)){
       $product_q = mysql_query("SELECT * FROM product_table WHERE shop_id=$shops['id']");
       echo "<div>";
       while($product = mysql_fetch_assoc($product_q)){
           echo $product['product_name']."<br/>";
           }
       echo "</div>";

    }