用户登录
显示用户登录界面
①创建方法加载模板

②拷贝登录模板

③修改模板


实现登录
①控制器调用模型方法实现登录

②创建模型方法登录

使用cookie加密
①拷贝加密解密函数

②创建测试方法使用加密解密


③针对登录使用加密解密函数

④修改测试方法查看结果


商品详情页数据展示
显示商品基本信息
①获取商品基本信息

②修改模板显示数据


③处理详情信息

④显示商品详情介绍


显示商品相册
①修改方法获取相册

②修改模板显示图片
第一张图片

其他图片


显示商品属性信息
①使用原生的sql语句获取商品属性信息

②在商品方法中获取属性

③将属性信息中唯一属性拆分出来

④修改模板显示唯一属性


⑤修改方法将单选属性拆分出来


⑥修改模板


购物车
3.1、购物车功能分析
3.1.1、功能分析
1、没有登录可以使用购物车功能。需要将数据保存到cookie或者session
2、登录之后也可以使用购物车。一般可以把购物车数据写入到数据库中。登录完成之后有数据转移操作
3、当相同(属性也是一致)的商品再次加入购物车数量增加
4、同一个商品属性不同在购物车显示也不一样(“货品”)
3.1.2、购物车数据保存位置
在没有登录时购物车数据保存在cookie中,登录之后数据保存在数据库中,在用户完成登录之后需要对cookie中数据转移到数据库下
3.1.3、购物车记录什么数据
1、需要记录商品的id标识 得到标识就可以获取到商品信息
2、需要记录用户需要购买的单选属性信息。要的是属性值的id
3、需要记录购买数量
|
商品id |
属性值的id组合 |
数量 |
|
1 |
18,19 |
2 |
3.1.4、购物中针对不同单选属性的记录方式
|
商品id |
属性值的id组合 |
数量 |
|
1 |
18(白色),19(32g) |
1 |
|
1 |
18(白色),20(64G) |
2 |
对于同一个商品,针对不同的单选属性组合对应的数据应该是多条
3.1.5、cookie存储如何存储
对于cookie中存储数据。对于cookie本身只能存储字符串。可以使用PHP中数组格式存储数据然后在序列化之后写入。具体cookie中数据的保存安装PHP数组格式
Array(
Array(‘goods_id’=>1,’goods_attr_id’=>’18,19’,’goods_count’=>2),
Array(‘goods_id’=>1,’goods_attr_id’=>’18,19’,’goods_count’=>2)
)
对于上述所写的格式是php中数组格式。当需要写入到cookie中是需要进行序列化操作
3.1.6、cookie数组中key怎么命名会方便
当加入商品到购物车时,如果用户没有登录需要操作cookie。操作是需要先判断当前相同商品相同属性的商品信息是否存在。如果使用上面所写的二维数组格式判断需要循环遍历进行比较。可以将购物车中的数据转换为一维数组方便判断
格式
Array(
‘goods_id-goods_attr_id’=>goods_count
)
3.2、购物车数据表创建
CREATE TABLE `shop_cart` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘用户ID’,
`goods_id` int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘商品ID’,
`goods_attr_id` varchar(255) NOT NULL DEFAULT ” COMMENT ‘商品属性值id组合 多个逗号隔开’,
`goods_count` smallint(6) NOT NULL DEFAULT ‘0’ COMMENT ‘购买数量’,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3.3、添加商品到购物车
①修改加入购物车为表单提交

②创建购物车控制器

③修改购买数量name值

④增加隐藏域实现商品标识提交

⑤修改模板实现属性值的id提交

提交接受数据发现只有一个属性值ID提交

由于需要有多个属性值ID因此需要设置为数组格式


由于单选属性使用的是radio类型。设置为数组格式多个单选属性只会提交一个。因此需要将属性相同的设置为一组


⑥修改方法实现商品添加购物车

⑦创建购物车模型

⑧实现添加到购物车



⑨创建测试方法测试

没有登录加入购物车结果

⑩测试已经登录的用户

3.4、购物车列表显示
①创建index方法

②在模型中定义getList方法

③拷贝购物车列表模板

④修改模板资源地址

⑤修改getlist方法获取购物车中数据

没有登录的结果

已经登录的结构

⑥修改getList方法获取商品信息及属性信息

已经登录结果

没有登录

⑦模板显示

⑧控制器调用方法计算出总金额

⑨创建模型方法计算总金额

3.5、删除购物车
①修改模板设置删除的连接地址

②创建方法调用模型方法实现删除

③创建模型方法实现删除

3.6、清空购物车
①增加清空购物车连接地址

②创建方法实现清空

③在模型中创建方法

3.7、实现登录之后购物车数据转移
①创建转移的模型方法


②在登录完成之后触发转移

