1

我正在使用 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。谢谢阅读..

4

1 回答 1

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>";

    }
于 2012-12-01T04:42:04.387 回答