2016-08-22 95 views
1

我有一个两个表1. grocery_product和2. grocery_attribute我可以从grocery_product我的数组中获取所有数据如下所示。PHP需要帮助在子阵列

Array 
(
[0] => Array 
    (
     [id] => 1 
     [pname] => Royal Moong Dal/Moong Dal 
     [categoryid] => 4 
     [subcatid] => 3 
     [added_date] => 2016-08-16 
    ) 

[1] => Array 
    (
     [id] => 2 
     [pname] => Royal Toor Dal/Arhar Dal/Tuver Dal 
     [categoryid] => 4 
     [subcatid] => 3 
     [added_date] => 2016-08-16 
    ) 

) 

我想要做的是,在我的grocerry_attribute表我传递grocery_product_id和grocery_attribute获取所有数据,其中产品是唯一的一个,属性是多什么。 我的杂货atrtribute表看起来像。

id      1 
product_id    2 
price     1500 
discount    15 
product_qty    20 

id      2 
product_id    2 
price     1000 
discount    10 
product_qty    50 

我想获取一个grocery_product(id = 1)及其属性数据。 查询??

+0

您是否在寻找MySQL查询? – zakhefron

+0

你有1到多关系。因此,您应该使用2个查询,1个获取产品,然后使用另一个获取该产品的属性。在这种情况下使用JOIN将返回具有冗余数据的行,除非您需要统计数据(计数或逗号分隔值),那么这就是您应该去做的。 –

+0

我得到所有attribute.but当我通过product_id(1)并获得属性数据(4行)我的数组是0到3 ..我想获得一个数组及其所有属性在一个数组上。>它是如何可能? –

回答

0

您可以使用LEFT JOIN一样,

SELECT p.id,p.pname,g.price,g.discount,g.product_qty FROM 
    grocery_product as p 
    LEFT JOIN grocery_attribute as g 
    ON p.id = g.product_id 
    WHERE p.id=2 

现在你可以环路属性和显示不同pricediscountproduct_qty的单品。

// Let $products is multidimensional array 
if(!empty($products) && isset($products[0]['pname'])){ 
    echo '<h1>'.$products[0]['pname'].'</h1>'; 
    foreach($products as $product){ 
     echo 'Price:'.$product['price']."\n"; 
     echo 'Discount:'.$product['discount']."\n"; 
     echo 'Product Quantity:'.$product['product_qty']."\n"; 
    } 
} 
+0

我得到所有attribute.but当我通过product_id(1)并获得属性数据(4行)我的数组是0到3 ..我想获得一个数组及其所有属性在一个数组。>它是如何可能? –

+0

查看我的更新回答 –

+0

可以按产品ID分组吗? –