我正在設計一個非常一般的PHP產品系統,因爲每個產品可能有多個選項(「高度」,「寬度」,「顏色」 ,「性別」等),但有些產品可能沒有這些選項,有些可能沒有。例如,五斗櫥可能有「大小」(由網站用戶在某處設置的適當大小列表),「拋光」(是/否)和「塗色」(是/否)。但是,新電視可能根本沒有選擇。PHP/mySQL產品系統(非常一般)
任何人都可以推薦一種方式讓用戶設置他們對他們產品所需的選項(例如,「拋光」對於零售電器來說根本不相關),然後存儲各種選項組合的價格因爲他們爲每個產品指定?
我正在設計一個非常一般的PHP產品系統,因爲每個產品可能有多個選項(「高度」,「寬度」,「顏色」 ,「性別」等),但有些產品可能沒有這些選項,有些可能沒有。例如,五斗櫥可能有「大小」(由網站用戶在某處設置的適當大小列表),「拋光」(是/否)和「塗色」(是/否)。但是,新電視可能根本沒有選擇。PHP/mySQL產品系統(非常一般)
任何人都可以推薦一種方式讓用戶設置他們對他們產品所需的選項(例如,「拋光」對於零售電器來說根本不相關),然後存儲各種選項組合的價格因爲他們爲每個產品指定?
`options` text null,
//DONT run this directly, it needs escaping...but you get the idea.
insert into tablename values({['polished':(int)1, 'size':'oh_its_big']}), ({['color':'hotpink']});
//run your query
$query = $db->select("* from tablename");
//loop query, json_decode the options string and assign to array
foreach($query as $q)
{
$tmp[] = (array)json_decode($q->options);
foreach($tmp as $options)
{
//run some conditional statements
if(array_key_exists('size', $options))
{
//do something
}
}
}
IMO,這是一個非常普遍的問題,您需要提供更多關於細節的信息。在我的腦海裏彈出
一種解決方案是如下
public class myAwesomeClass {
$typeOfMyClass; //got from a DB when a user creates a new type.
$keyAndValuePair; //holds the key=>value pair of the type's data
}
和訪問它在外面的世界。
$obj = new myAwesomeClass();
//based on $obj->typeOfMyClass value process
foreach ($obj->keyValuePair as $key=>$value) {
//perform your operations
}
PS:這是這樣一個基本類的你所描述的東西,我幾乎不推薦使用此。不知道具體情況,對我來說難以完全回答:) – footy 2011-12-22 15:40:34