2011-11-08 58 views
0

我正在做一個網上商店,每個產品可以有幾個變種。PHP + MySQL中的前端產品變體?

所有變種實際上是他們自己的產品。每個產品的SKU不同,但產品編號對於「一種產品」的所有變體都是相同的。

變體組合被保存在一個名爲variantvalues的獨立表中。其中有產品SKU,字段名稱和字段值。

比方說,我有3個產品。 SKU:0505002699/SB/M,0505002699/SC/L和0505002699/SC/M。

所有產品具有相同的產品編號; 0505002699.

該產品有以下字段:顏色,尺寸。

這些是每個產品的值:

0505002699/SB/M

顏色:黑色

面積:小

0505002699/SC/L

顏色:藍色

尺寸:中

0505002699/SC/M

顏色:紅色

大小:小


任何人只要有線索就如何我能循環,前端?最終結果應該是這樣的:http://i.stack.imgur.com/rAxeG.png

問題(對我來說)是弄清楚如何列出可能的「配置」。

有人嗎?

+0

什麼具體給你麻煩?顯示這個?爲此詢問?這對我來說似乎很簡單,我不知道如何在不知道具體問題的情況下如何幫助您。 – Brad

+0

因此,產品沒有唯一標識符(不是變體)? –

回答

0

只是實現一個快速的想法:

如果 「配置」 是每個產品變量:

額外的表:

size 
    - code 
    - descr 

FE:

S - Small 
M - Medium 

而且那麼產品和尺寸之間的表格:

product_size 
    - product_id 
    - size_code 

FE:

1 - S 
1 - M 
2 - S 
... 

對於顏色:

product_color 
    - product_id 
    - color 

FE:

1 - #FFFFFF 
1 - #000000 
2 - #000000 
... 

然後你可以選擇通過PRODUCT_ID每個產品的所有選項。

FE:

SELECT color FROM colors WHERE product_id = $product_id; 
SELECT size_code FROM product_size WHERE product_id = $product_id; 

編輯:哇,我誤解你的問題的一部分,對不起

0

雖然Nathan的回答是可行的,你可能會考慮更寬泛的版本(不嚴格的語法這裏檢查,只是採取刺):

create table configurations (
id int auto_increment primary key, 
product_id int not null, 
name varchar(50) not null, 
value varchar(255) not null default "", 
FOREIGN KEY (product_id) REFERENCES product(id) 
) 

然後你可以創建新的配置類型(configurations.name)在代碼中處理它們。

select value from configurations where product_id=$product_id and name='color'; 
select value from configurations where product_id=$product_id and name='size'; 

現在,這種方法的缺點是,庫存可能是一個問題,所以其他的方式來解決這個問題是讓他們在你的項目表的個別項目(產品表?),它們與彼此。將它們組合成代碼用於查看頁面,但所有藍色襯衫的庫存可以與紅色襯衫分開保存。