php商城商品属性数据库,PHP.38-TP框架商城应用实例-后台15-商品属性与库存量1-不同商品(唯一属性、可选属性),属性类型...

思路:

1、不同商品属于不同的类型,如:手机、服装、电脑等类型

2、不同的类型有不同的属性,其中分为唯一属性和可选属性,如服装:可选属性{尺寸:S,M,L……;颜色:白色,黑色……}唯一属性:材质

首先把类型与属性关联起来

1、建表

类型表{p39_type}

drop table ifexists p39_type;

create table p39_type

(

id mediumint unsigned notnull auto_increment comment ‘Id‘,type_name varchar(30) not null comment ‘类型名称‘,primarykey(id)

)engine=InnoDB default charset=utf8 comment ‘类型‘;

属性表{p39_attribute}

drop table ifexists p39_attribute;

create table p39_attribute

(

id mediumint unsigned notnull auto_increment comment ‘Id‘,attr_name varchar(30) not null comment ‘属性名称‘,attr_type enum(‘唯一‘, ‘可选‘) not null comment ‘属性类型‘,attr_option_values varchar(300) not null default ‘‘ comment ‘属性可选值,用逗号隔开多个值‘,type_id mediumint unsigned unsigned notnull comment ‘所属类型‘,primarykey (id),

keytype_id (type_id)

)engine=InnoDB default charset=utf8 comment ‘属性表‘;

2、GII自动生成两张表的操作代码

注意:

1、生成类型表代码前,在配置文件p39_type.php中,注意添加检查类型名称是否重复的验证;且不需要搜索功能【类型数据级不大】

395fb18c8aaba85563575228a104f1bb.png

2、在生成属性表代码之前,在配置文件p39_arrtribute中, 删除不必要的搜索字段

e7434fe2e20fd71b97c3d8cec6ee4b79.png

3、调整生成代码,使之更适用

1、类型改为下拉框,适用之前封装好的下拉框函数buildSelect(‘表名‘,‘下拉框名‘,‘下拉框的值[表字段]‘,‘表字段文本‘,‘可选值‘)

function buildSelect($tableName, $selectName, $valueFieldName, $textFieldName, $selectedValue = ‘‘)

{$model = D($tableName);$data = $model->field("$valueFieldName,$textFieldName")->select(); //取需要的两个字段值

$select = "请选择"; //下拉框name即存进表字段

foreach ($data as $k => $v)

{$value = $v[$valueFieldName]; //值value <= 字段值【表id】

$text = $v[$textFieldName]; //显示内容 <= 字段值存放内容

if($selectedValue && $selectedValue==$value) //判断是否选中

$selected = ‘selected="selected"‘;else

$selected = ‘‘;$select .= ‘‘.$text.‘‘;

}$select .= ‘‘;echo $select;

}

2、对属性可选值出现中文逗号情况的处理

08933115bc06b50b668170d8bd595538.png

fd93e9ef094a05796c41c1a15f6703b3.png

删除类型

删除类型时,类型对应下的属性全部删除

思路:在删除类型代码TypeModel.class.php执行前,删除所有属性{_before_delete()}

01a587f24854cc0490238960606d8618.png

原文:http://www.cnblogs.com/zixuanfy/p/7061689.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值