购物车多属性产品

时间:2015-02-08 14:47:41

标签: php arrays cart

我很久以前就创建了一个可靠的多产品购物车,现在我决定为产品添加多个属性(例如尺寸,颜色......)。

我的数据库是这样的:

产品: ID ...

属性 ID 名称(颜色/尺寸) 值(蓝色/灰色/ XXL) ...

Product_attributes ID atribute_id PRODUCT_ID

我已经以这样的方式在单个产品页面上添加了属性输入(它正在工作)

if(the product has atributes on product_attributes table){
   while(there's product_attributes id){
        echo <select name=".$name.">
        while(there's atributes equal to product_attributes){
             echo <option value=".$id.">$value</option>
        }
        echo </select>
   }
}
<input type="number" name="qtd"> //quantity input
<input type="hidden" name="product_id" value="$product_id">
<input type="hidden" name="action" value="add">
<input submit>

在cart.php上,我有以下脚本

if(isset($_POST['action']) && $_POST['action'] == 'add'){
    $product= $_POST['product_id'];
    $qty= $_POST['qtd'];

    if(!empty($_SESSION['cart'][$product])){
        $qty= $qty+ $_SESSION['cart'][$product];

    }
    $_SESSION['cart'][$product] = $qty;
    header('location: cart');
}

我怎样才能使这个脚本适应我所拥有的新的属性输入,知道: 并非所有产品都具有属性; 产品可以有一个或无限的属性; 由于它们的数量和取决于他的属性,将产品保存在不同的阵列中(例如:产品:1,颜色:蓝色,尺寸:L数量:2 |产品:1,颜色:黑色,尺寸:l,数量:1)

有人能帮我解决这个困境吗? 我爱你的善意;)

2 个答案:

答案 0 :(得分:1)

我只给你创建两个表的想法:

属性类型

<强>属性

ID-名称 - 值

1 - 大小 - 42

2-taglia-XXL

然后是一个与属性和产品

关联的表

<强>协会

ID-产品属性

autoincrement-1(例如id 1产品1) - 2(属性)

具有该id的产品具有taglia xxl,如果添加任何行将具有其他属性

答案 1 :(得分:0)

创建 3 个表

1)AttributeMaster

身份证 |属性名称

2)属性值

身份证 |身份 |价值

3)ProductAttribute

身份证 | PId |AttrId |AttvalueID