用户登录
显示用户登录界面
①创建方法加载模板
②拷贝登录模板
③修改模板
实现登录
①控制器调用模型方法实现登录
②创建模型方法登录
使用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、实现登录之后购物车数据转移
①创建转移的模型方法
②在登录完成之后触发转移