Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将my_uMySQL中的值分组显示在单独的<;部门>;根据某些标准_Php_Html_Mysql - Fatal编程技术网

Php 将my_uMySQL中的值分组显示在单独的<;部门>;根据某些标准

Php 将my_uMySQL中的值分组显示在单独的<;部门>;根据某些标准,php,html,mysql,Php,Html,Mysql,我正在做一个以MySQL为数据库的php项目。这是表格结构 product_id (PK) shop_id (FK) product_name product_desc Product_id是主键,shop_id是外键(显示产品属于哪个商店)。现在我想选择这些产品并在中显示它们。对于每个商店产品,我想显示不同的。e、 g如果有三种产品,例如p1、p2和p3,并且它们具有相同的店铺id(例如)1,我希望它们在单独的中显示。每个店铺id将有单独的,属于该店铺id的所有产品将显示在该中。如何使用SQ

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

product_id (PK)
shop_id (FK)
product_name
product_desc
Product_id是主键,shop_id是外键(显示产品属于哪个商店)。现在我想选择这些产品并在
中显示它们。对于每个商店产品,我想显示不同的
。e、 g如果有三种产品,例如p1、p2和p3,并且它们具有相同的店铺id(例如)1,我希望它们在单独的
中显示。每个店铺id将有单独的
,属于该店铺id的所有产品将显示在该
中。如何使用SQL查询或PHP实现这一点。我曾经使用过这样一个简单的SELECT查询,但是使用它我找不到一种方法来为单独的商店启动不同的

$q = mysql_query("SELECT * FROM table");
echo "<div>";
while($product = mysql_fetch_assoc($q)){
echo $product['product_name']."<br/>";
}
echo "</div>";
$q=mysql\u查询(“从表中选择*);
回声“;
而($product=mysql\u fetch\u assoc($q)){
echo$product['product_name']。“
”; } 回声“;

它只是将所有产品放在一个单独的分区中,我希望为单独的商店(包含该商店的所有产品)创建单独的分区。感谢您的阅读。

最简单的方法是将产品按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>";
}
$all_products=array();
而($product=mysql\u fetch\u assoc($q)){
$all_products[$product['shop_id']][]=$product;
}
foreach($shop\u id=>$product\u数组形式的所有产品){
回声“;
foreach($product\U数组作为$product){
echo$product['product_name']。“
”; } 回声“; }
或者调用每个店铺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>";

    }
$q=mysql\u查询(“从商店中选择*);
而($shops=mysql\u fetch\u assoc($q)){
$product\U q=mysql\U查询(“从product\U表中选择*,其中shop\u id=$shops['id']);
回声“;
而($product=mysql\U fetch\U assoc($product\U q)){
echo$product['product_name']。“
”; } 回声“; }
最简单的方法是在一个数组中按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>";
}
$all_products=array();
而($product=mysql\u fetch\u assoc($q)){
$all_products[$product['shop_id']][]=$product;
}
foreach($shop\u id=>$product\u数组形式的所有产品){
回声“;
foreach($product\U数组作为$product){
echo$product['product_name']。“
”; } 回声“; }
或者调用每个店铺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>";

    }
$q=mysql\u查询(“从商店中选择*);
而($shops=mysql\u fetch\u assoc($q)){
$product\U q=mysql\U查询(“从product\U表中选择*,其中shop\u id=$shops['id']);
回声“;
而($product=mysql\U fetch\U assoc($product\U q)){
echo$product['product_name']。“
”; } 回声“; }
谢谢Elijan,这个概念看起来很像《盗梦空间》中的电影,“一个阵列对一个阵列,我们必须更深入。”:-)但它解决了我的问题…@WaqarAkbar。哈哈,是的。我已经更新了不同的和更优雅的解决方案的评论,你可以按店铺id查询店铺产品,因为一般情况下,选择*是不好的,所以我应该使用每个列名,而不是*。。。使用select*。??@WaqarAkbar有什么问题吗?理想情况下,如果您只使用该coulmn,则是。根据操作,该列应该在数据库中建立索引,以便更快地查询。因此,例如
$q=mysql\u查询(“从商店中选择id”)
然后稍后
mysql\u查询(“从product\u表中选择product\u name,其中shop\u id=$shops['id'])其中shops.id和products.shop\u id都是索引的这很有意义,将尝试遵循它。。。谢谢你的帮助。谢谢Elijan,这个概念看起来很像《盗梦空间》中的电影,“一个阵列一个阵列,我们必须更深入。”:-)但它解决了我的问题…@WaqarAkbar。哈哈,是的。我已经更新了不同的和更优雅的解决方案的评论,你可以按店铺id查询店铺产品,因为一般情况下,选择*是不好的,所以我应该使用每个列名,而不是*。。。使用select*。??@WaqarAkbar有什么问题吗?理想情况下,如果您只使用该coulmn,则是。根据操作,该列应该在数据库中建立索引,以便更快地查询。因此,例如
$q=mysql\u查询(“从商店中选择id”)
然后稍后
mysql\u查询(“从product\u表中选择product\u name,其中shop\u id=$shops['id'])其中shops.id和products.shop\u id都是索引的这很有意义,将尝试遵循它。。。谢谢你的帮助。