我很久以前就创建了一个可靠的多产品购物车,现在我决定为产品添加多个属性(例如尺寸,颜色......)。
我的数据库是这样的:
产品: 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)
有人能帮我解决这个困境吗? 我爱你的善意;)
答案 0 :(得分:1)
我只给你创建两个表的想法:
属性类型
<强>属性强>
ID-名称 - 值
1 - 大小 - 42
2-taglia-XXL
然后是一个与属性和产品
关联的表<强>协会强>
ID-产品属性
autoincrement-1(例如id 1产品1) - 2(属性)
具有该id的产品具有taglia xxl,如果添加任何行将具有其他属性
答案 1 :(得分:0)
身份证 |属性名称
身份证 |身份 |价值
身份证 | PId |AttrId |AttvalueID