php商城后台商品属性,PHP.29-TP框架商城应用实例-后台6-商品会员添加-价格、级别...

首先把需求分析搞清楚

主要实现两个功能

1、会员管理,设置成为会员的要求

2、添加商品时,可设置会员优惠价格

具体实现

1、建表【会员级别限定表p39_member_level{Id,级别名称,积分下限,积分上限}、会员价格表p39_member_price{会员价格,积分Id,商品Id}】

drop table if exists p39_member_level;

create table p39_member_level

(

id mediumint unsigned not null auto_increment comment 'Id',

level_name varchar(30) not null comment '级别名称',

jifen_bottom mediumint unsigned not null comment '积分下限',

jifen_top mediumint unsigned not null comment '积分上限',

primary key (id)

)engine=InnoDB default charset=utf8 comment '会员级别';

p39_member_level

drop table if exists p39_member_price;

create table p39_member_price

(

price decimal(10,2) not null comment '会员价格',

level_id mediumint unsigned not null comment '级别Id',

goods_id mediumint unsigned not null comment '商品Id',

key level_id(level_id),

key goods_id(goods_id)

)engine=InnoDB default charset=utf8 comment '会员价格';

p39_member_price

2、使用Gii生成代码

e90f8d2a39e8e4d8dd3b0debe0d51df3.png

配置代码生成配置文件/Gii/Table_configs/p39_member_level.php【会员级别的数量级太少,不需搜索表单】

cdba19bbb83df7af6f0665bd989d924b.png

测试

8f916c3fecd0d907c1c40d1a1ce498b8.png

3、在添加商品页面可以设置会员价格

3.1修改控制器GoodsController.class.php-add(),使添加页面打印所有的会员级别

f5251d0b29787619c846c3de4a9761e0.png

3.2修改add.html表单,循环输出【因为是多个会员级别,而name需要插入库,应为会员级别id,所以使用数组存储多个会员价格】

fc6431128117721374e258cf823cc530.png

fdae39abf70088c76eacb4fefa9fbfa5.png

3.3提交表单,会员价格数据插入会员价格表{会员价格,积分Id,商品Id}

注:因为为商品插入会员价格,需要获取商品id,而商品id只有在添加商品成功后才生成,所以使用钩子函数_after_insert()

1、价格必须为数字,强制转换为float;  2、价格必须大于0,无数值无法插入,if($_v>0)

//钩子方法_after_insert:添加操作成功后执行

protected function _after_insert($data, $option)

{$mp = I('post.member_price'); //接收post提交过来的会员价格数据

$mpModel = D('member_price');

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

{

$_v = (float)$v; //强制转为浮点型,以免插入字符等错误数据

//设置会员价格>0就插入到表中

if($_v > 0)

{

$mpModel->add(array(

'price' => $_v,

'level_id' => $k, //级别Id

'goods_id' => $data['id'],

));

}

}

}

$data => 将要插入商品表中数据

a8e657b31da98d63dfc3c66a7c48ca33.png

测试

71c87000594ac924a2849c88fa64425c.png

ec852a010d5535db35e62b8f31ffaaa8.png

管理首页,左侧按钮连接到页面

4368c0e4aafdfa066b6e077f22a7ad0e.png

a288dcdb5e079cb62c9b8c2a1a49556c.png

PHP.31-TP框架商城应用实例-后台7-商品会员修改-页面优化,多表数据更新

商品表修改功能 1.页面优化,类似添加页面

...

PHP.32-TP框架商城应用实例-后台8-商品相册-添加

商品相册[是商品的其他相片] 添加相册需求: 每张图片生成三张缩略图{50*50.350*350.650*650} 1.建表p39_goods_pic{id,pic,sm_pic,mid_pic,bi ...

PHP.30-TP框架商城应用实例-后台6-商品会员价格删除-外键,级联操作

商品会员价格删除 需求:当删除一件商品时,这件商品对应的会员价格也应该从会员价格表{price,level_id,goods_id}中删除掉. 有两种删除方法 1.在钩子函数_before_delet ...

PHP.43-TP框架商城应用实例-后台18-商品属性3-库存量管理

库存量管理 思想:为商品的每个多选属性设置库存量!!要把多选属性排列组合分别指定库存量!! 效果如下:[由商品已经添加的属性决定] 1.建表goods_number{goods_id,goods_nu ...

PHP.24-TP框架商城应用实例-后台1-添加商品功能、钩子函数、在线编辑器、过滤XSS、上传图片并生成缩略图

添加商品功能 1.创建商品控制器[C] /www.test.com/shop/Admin/Controller/GoodsController.class.php <?php namespace ...

PHP&period;48-TP框架商城应用实例-后台23-权限管理-权限验证

权限验证 1.登录控制器 2.通过tp验证码类生成验证码图片 3.在管理员模型增加登录验证规则 4.后台中所有的控制器必须先登录才能访问 思路:在访问任何一个控制器之前都判断一个session即可,= ...

PHP&period;28-TP框架商城应用实例-后台5-多表操作-商品表与品牌表

表与表之间的关系:1:1 1:多 多:多 功能需求决定表关系 此处的表关系为:品牌表:商品表=1:多 1.首先在表结构上关联,在多的表(商品表)添加一个字段,关联一的表(品牌表)的ID(主键) 添加字 ...

PHP&period;27-TP框架商城应用实例-后台4-使用Gii生成品牌表的代码

Gii安装[GII适用于商城项目] 将Gii文件夹复到application 是,访问http://xx.com/index.php/gii Gii规则[Gii使用规则与建表规则密切相关] 1.建表字 ...

PHP&period;44-TP框架商城应用实例-后台19-权限管理-RBAC需求分析

RBAC:Role Based Access Control:基于角色的访问控制 需求分析:[类似效果如下图] 1.权限,角色,管理员 2.权限管理[无限级] 注意:权限会被分配给角色,而不是给管理员 ...

随机推荐

R语言学习笔记-机器学习1-3章

在折腾完爬虫还有一些感兴趣的内容后,我最近在看用R语言进行简单机器学习的知识,主要参考了这本书. 这本书是目前市面少有的,纯粹以R语言为基础讲解的机器学习知识,书 ...

T4模板——一个神奇的代码生成器

利用T4模板,可以很方便的从数据库映射成Model模型,相当于动软等功效.但动软是可以直接生成三层,抽象工厂的,T4没那么牛叉,所以我们一般只用作生成Modle或者Server等指定方法了. 废话少说 ...

js获取url方法

//设置或获取对象指定的文件名或路径.alert(window.location.pathname); //设置或获取整个 URL 为字符串.alert(window.location.href); ...

HDU -2298 Toxophily(三分法)

这道题目,可以推出物理公式直接来做,但是如果推不出来就必须用程序的一种算法来实现了,物理公式只是适合这一个或者某个题,但是这种下面这种解决问题的方法确实解决了一类问题 ----三分法,大家可能都听说过 ...

myeclipse连接数据库oracle(添加jdbc&period;properties)

第一步:在src下面建一个包com.xsl.conf 第二步:在建好的包下面新建一个jdbc.properties 第三步:在jdbc.properties里写入内容如下: driver = orac ...

Excel 2010高级应用-柱形图(一)

今天,做项目低保真,是在excel中画图,这也是我第一次在excel中画图. 每次做过的东西或者学到的新东西,我必须要把他们记录下来,这样到时再次用到它们时可以很容易地找到. 下面介绍做柱形图的过程: ...

LeetCode 21&period; Merge Two Sorted Lists(c&plus;&plus;&rpar;

要定义两个链表 判断时依次对应每一个链表的值进行判断即可. /** * Definition for singly-linked list. * struct ListNode { * int val ...

armv8 memory translation

AArch32,arm的32bit架构: AArch64,arm的64bit架构: ARMv8.2-LPA,是armv8.2中的新feature,扩大了IPA和PA的支持范围,从48bit扩展到52b ...

Smali语法

看阿里巴巴的,里面的代码看不懂,一查才知道是Smali语法,百度了语法,转载如下 转载自smali 语言语法 1.smali apk文件通过apktool反 ...

&lpar;转&rpar;AIX rootvg 镜像创建与磁盘更换

# prtconf | grep disk # chdev -l hdisk1 -a pv=yes # extendvg rootvg hdisk1 # chvg -Qn rootvg # lsvg ...

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值