PHP基础转载 | PHP 实现商品的无限规格实现思路在电子商城项目开发中, 会存在同一种商品存在不同规格的情况, 如图某型号手机在售卖时用户可以选择的不同规格: 这里商品的库存量单位(SKU)便不再是该商品, 而是到具体属性组合出的规格, 每种规格可能会有不同的售价、运费与库存剩余情况, 所以用户在购买时, 不仅需要记录所购买的商品 ID, 同时也需要记录购买的该商品的具体规格。 直观分析图示中的规格情况,作者王明昌发布时间2018-08-28 在电子商城项目开发中, 会存在同一种商品存在不同规格的情况, 如图某型号手机在售卖时用户可以选择的不同规格: 这里商品的库存量单位(SKU)便不再是该商品, 而是到具体属性组合出的规格, 每种规格可能会有不同的售价、运费与库存剩余情况, 所以用户在购买时, 不仅需要记录所购买的商品 ID, 同时也需要记录购买的该商品的具体规格。 直观分析图示中的规格情况, 网络类型、机身颜色、机身内存 属于商品不同属性的名称, 与之对应的为属性可选择的的具体值, 属于一对多关系, 在 MySQL 数据库表结构中反应出为: 复制# 商品属性名 CREATE TABLE `item_attr_key` ( `attr_key_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, # 主键, 自增 ID `item_id` INT(10) UNSIGNED NOT NULL, # 关联到商品 `attr_name` VARCHAR(50) NOT NULL, # 属性名称 PRIMARY KEY (`attr_key_id`) ); # 商品属性值 CREATE TABLE `item_attr_val` ( `attr_key_id` INT(10) UNSIGNED NULL DEFAULT NULL, # 对应 item_attr_key 表的 attr_key_id, 完成一对多关联 `item_id` INT(10) UNSIGNED NULL DEFAULT NULL, # 关联到商品 `symbol` INT(10) NULL DEFAULT NULL, # 属性编码 `attr_value` VARCHAR(255) NULL DEFAULT NULL # 属性值 ); 加入数据后表内容如图: symbol 字段是对指定商品 ID 下的属性值的一个序号标记, 是为了提高在后面使用到时的检索效率。该值在不同商品间可以重复, 在同一商品的属性中需要保证唯一。 以上就完成了商品 ID 为 6 的商品多属性的存储工作。 为了能够记录和快速查询出每种属性组合出的商品的价格、库存等信息, 我们还需要张表来维护这部分数据, 建立 item_sku 表: 复制# 商品库存量单位表 CREATE TABLE `item_sku` ( `sku_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, # 主键, 自增 ID `item_id` INT(10) UNSIGNED NOT NULL DEFAULT '0', # 关联到商品 `attr_symbol_path` VARCHAR(255) NOT NULL, # 属性组合出的规格路径 `price` DOUBLE(15,2) NOT NULL DEFAULT '0.00', # 价格 `freight` DOUBLE(15,2) NULL DEFAULT '0.00', # 运费 `stock` INT(10) UNSIGNED NOT NULL DEFAULT '0', # 库存数量 PRIMARY KEY (`sku_id`) ); 该表是用户在添加完商品属性后, 由系统负责生成的该商品所有的可以选择的属性组合方案, attr_symbol_path 字段即是该商品不同属性值的 symbol 字段组合后的路径, 用来指示该规格具体指代哪些属性。 如 attr_symbol_path 字段值为 1,4,7, 则对应 item_attr_val 表中 item_sku.item_id = item_attr_val.item_id 条件下 symbol 字段值为 1, 4, 7 的属性组合: TD-LTE/FDD-LTE/TDS/WCDMA/EVDO/GSM - 深空灰 - 16GB。 将示例中具有三种网络类型、三种机身颜色、三种机身内存的属性数据生成 SKU 后的 item_sku 表数据图示: 从图中数据看出, 该商品共有27种不同规格可选, 那么这时在确定用户选择的某种规格的价格等信息时只需一条 SQL 语句即可完成: 复制select * from `item_sku` where `item_id`=6 and `attr_symbol_path`='1,4,7';
2017-11-18PHP函数-数学函数abs 格式 描述 输入 输出 abs() 绝对值 整形/浮点型/字符串/进制数 与输入相对应 实例: $a = -12;//12 $a = -112.02;//11.02 $a = "-123.2"
2018-05-27获取上一级页面的url参考地址:http://www.qdxw.net/xwhtml/384.html 实战代码 从4.php 点击进入5.php 1.上一页地址: http://localhost/box/4.php 2
2017-11-19PHP函数why 提高开发效率 提高代码的重用性 有利于代码的维护 格式 function funName(形参,形参) { 代码块; return; } 函数名格式 函数名不区分大小写 函数名不能以数字开头,
2017-12-16转载 | PHP常用函数总结(180多个)数学函数 1.abs(): 求绝对值 $abs = abs(-4.2); //4.2 数字绝对值数字 2.ceil(): 进一法取整 echo ceil(9.999); // 10 浮点数进一取整 3
2017-11-19PHP基础语法php格式4种形式 1.1 标准式 1.2 短风格 1.3. asp风格 1.4 脚本风格 注: 1.2/1.3需要修改php.in文件 各改为short_open_tag = On asp_tags