我正在开发一个以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。谢谢你的阅读..
答案 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>";
}