2017-08-11 38 views
0

所以我的下一個數據庫:PHP MySQL查詢和陣列協會

+------+---------------+-------+ 
| Id |  Title  | Price | 
+------+---------------+-------+ 
| 300 | Part1   | 30 | 
| 400 | Part2   | 40 | 
| 500 | Part3   | 50 | 
| 3215 | Promo Package | 130 | 
+------+---------------+-------+ 

而且

+-----------------+--------------+ 
| Promo_prod_main | product_part | 
+-----------------+--------------+ 
|   3215 |   300 | 
|   3215 |   400 | 
|   3215 |   500 | 
+-----------------+--------------+ 

兩個人會創造讓說,一個促銷包(3個產品)。

問題是,有時,3部分的價格會發生變化,但不會影響促銷套餐價格。

我決定創建一個腳本,選擇每個促銷包,然後獲取其創建的產品,總結價格數​​組,然後更新促銷包。

所有好的想法,直到我得到的代碼,我管理這個地步:

$rezultatebumb = mysqli_query($linkul, "SELECT id,title,price FROM product WHERE attr_group_id IS NULL AND is_homepage IS NULL") or die(mysqli_error($linkul)); // this query only selects the promo packages 
$array_m = array(); 
foreach ($rezultatebumb as $valc) { 
    $array_m[] = $valc['id']; 
} 

$array_s = array(); 
foreach ($array_m as $arr) { 
    $rezprod = mysqli_query($linkul, "SELECT product_part FROM product_promo WHERE Promo_prod_main=" . $arr) or die(mysqli_error($linkul)); 
    $tesat = $rezprod->fetch_assoc(); 

    $array_s[] = $tesat['product_part']; 
    echo count($array_s); 

} 

print_r($array_s); 
echo '</br></br>'; 
print_r($array_m); 

結果下一步 - >

一個產品從每包

Array ([0] => 146 [1] => 1497 [2] => 565 [3] => 6576 [4] => 1516) 

每個促銷包

Array ([0] => 5732 [1] => 5758 [2] => 6998 [3] => 7032 [4] => 7033) 

之前,我得到這樣的消息「你應該寫的代碼自己」,以及我盡力了,我只是不能讓過去這一點的任何地方。

我會很感激任何提示或解決這個問題,謝謝!

回答

0

很遺憾,我唯一能理解的就是這部分。

我決定創建一個選擇每個促銷包腳本,然後 獲知其從創造的產品,總結 價格的陣列,然後更新促銷包。

所以,你可以像連接一樣獲得與促銷包相關的所有產品的數組。

SELECT p.Price from product p 
join promo_table pt 
on (p.Id = pt.Promo_prod_main) 
where pt.promo_prod_main=3215 

通行證它會導致對數組,然後做array_sum()到陣列以獲得總價。

然後更新它的總價

0

您可以使用內部連接來準備軟件包。隨着內部查詢聯接:在這些線路上

select * from package a 
inner join product b 
on a.package_id = b.package_id 
where a.package_id = 5 

東西,你應該有對應於每個產品pacakage_id。或者你可以有另一個映射表來映射具有各種包的產品。