码迷,mamicode.com
首页 > 其他好文 > 详细

20150414--商品,属性,图片入库

时间:2016-05-09 00:04:28      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

 

目录

一、商品管理 1

1、建表的考虑 1

2、添加商品 3

3、上传图片生成缩略图 5

4、封装上传函数,并生成缩略图。 6

5、商品信息入库 8

6、取出商品属性 9

7、商品属性入库 11

一、商品管理

1、建表的考虑

goods_thumb表示小图,100*100的,在列表页面中使用

技术分享

商品的中图goods_img在商品的详情页面中使用。

技术分享

使用is_best表示是一个精品,使用is_new是新品 is_hot是热卖

技术分享

建立商品表:

create table it_goods(

      id smallint unsigned primary key auto_increment,

      goods_name varchar(32) not null comment ‘商品的名称‘,

      cat_id  smallint unsigned not null comment ‘商品所属栏目的id‘,

      goods_type tinyint unsigned not null comment ‘商品类型的id‘,

      goods_sn  varchar(32) not null comment ‘商品的货号‘,

      shop_price decimal(9,2) not null default 0.0 comment ‘商品的本店价格‘,

      market_price decimal(9,2) not null default 0.0 comment ‘商品的市场价格‘,

      goods_number smallint  not null default 0 comment ‘商品的库存‘,

      seotitle varchar(32) not null default ‘‘ comment ‘seo标题,利用搜索引擎的‘,

      goods_desc varchar(128) not null default ‘‘ comment ‘商品的描述‘,

      goods_ori varchar(64)  not null default ‘‘  comment ‘商品的原图‘,

      goods_thumb varchar(64) not null default ‘‘ comment ‘商品的小图‘,

      goods_img varchar(64) not null default ‘‘ comment ‘商品的中图‘,

      is_best tinyint  not null default 0  comment ‘是否是精品,1表示为精品,0表示不是‘,

      is_new tinyint  not null default 0  comment ‘是否是新品,1表示为新品,0表示不是‘,

      is_hot tinyint  not null default 0  comment ‘是否是热卖,1表示为热卖,0表示不是‘,

      is_sale tinyint  not null default 0  comment ‘是否上架,1表示为上架销售,0表示不是‘,

    add_time int not null default 0 comment ‘商品的添加时间‘

)engine myisam charset utf8;

需要建表完成属性的保存,如何建立表的字段

goods_id(商品的id)  attr_id(属性的id)  attr_value(属性的值)   

技术分享

技术分享

比如存储:

goods_id       attr_id     attr_value

1              1          黑白金

2              5             

#商品属性表

create table it_goods_attr(

         id smallint unsigned primary key auto_increment,

         goods_id smallint not null comment ‘商品的id‘,

         attr_id tinyint unsigned not null  comment ‘存储属性的id‘,

         attr_value varchar(10) not null comment ‘属性的值‘

)engine myisam charset utf8;

2、添加商品

(1)在goods模块下面新建一个goods的控制器,并添加add方法,并拷贝对应的模板页面。

(2)修改模板页面里面添加商品的表单。主要是添加商品属性的选项卡

技术分享

第一步:添加商品属性的标签

技术分享

第二步:添加商品属性的具体的内容

技术分享

第三步:修改charea()函数

技术分享

完成表单其他信息的修改,要注意表单里面的名称要和表中的字段名称一致。

技术分享

(3)在控制器中,完成添加商品的代码

技术分享

(4)新建一个goods模型,添加_before_insert钩子函数

钩子函数有6个

_before_insert(&$data,$option)是$model->add()函数触发_before_insert和_after_insert函数。

_after_insert($data,$option)

_before_update()

_after_update()

_before_delete()

_after_delete()

3、上传图片生成缩略图

在goods的模型里面添加_before_insert函数,该函数完成图片上传。

技术分享技术分享技术分享

上传成功后,返回的信息。

技术分享

4、封装上传函数,并生成缩略图。

自定义函数可以在common目录下面的common目录下面新建一个function.php文件。在该文件中定义的函数,可以在控制器和模型里面直接使用。

技术分享

技术分享

技术分享

技术分享

最后,模型里面_before_insert的代码

技术分享

5、商品信息入库

在goods模型中添加数据验证的信息

技术分享

控制器入库的代码:

技术分享

6、取出商品属性

(1)在goods控制器中add方法中取出商品的类型

技术分享

技术分享

表单里面有输入框,有下拉列表。

如果是唯一属性,并且是手工录入,则生成一个输入框

如果是唯一属性,并且是列表选择,则生成一个下拉列表

如果是单选属性,并且是手工录入,则生成一个输入框

如果是单选属性,并且是列表选择,则生成一个下拉列表,并前面添加 “[+]”表示自己能够复制。

attr_type=0表示唯一属性  attr_type=1表示单选属性

attr_input_type=0表示手工录入,attr_input_type=1表示列表选择

在add.html页面中使用ajax来完成:

技术分享

根据ajax完成在控制器里面添加showttr方法。

技术分享

showattr.html页面里面内容:

技术分享

技术分享

技术分享

7、商品属性入库

入 it_goods_attr表;

技术分享

商品属性入库是在商品入库后再执行的。因此要写到 _after_insert钩子函数中

分析属性提交过来的数据

技术分享技术分享技术分享

技术分享

8、完成商品列表取出

20150414--商品,属性,图片入库

标签:

原文地址:http://www.cnblogs.com/lifushan/p/5472154.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!