PHP.40-TP框架商城应用实例-后台17-商品属性3-商品分类的修改与删除
2021-07-13 20:10
标签:显示 href 优化 记录 lan gad div code lap 商品分类的修改 1、改表单Goods/edit.html,加下拉框 2、因为商品属性修改涉及商品属性表goods_attr{id,attr_value,attr_id,goods_id}与属性表attribute{id,attr_name,attr_option_values,type_id},而且考虑到当一个类型新增一个属性时,修改表也应该将其显示出来,所以应根据属性表连接商品属性表取出相关数据{同一类型所有属性,该商品已存属性值} 连表查询数据输出如下: 3、用PHP在表单edit.html中显示显示输出 注意:同一种属性中,应该第一个出现为+号,其他为-号 4、数据修改 思路:因为之后做的库存量的功能需要用到商品属性的ID,如果清空商品属性重新添加的话,ID就都变了,导致库存量的数据,会导致:每次修改商品后,库存量的数据就都失效了需要重新添加,所以不能按以前的方法,将原数据全部删除再更新 因此分三种情况 1、添加新属性insert 2、修改原属性update 3、删除属性:使用AJAX删除 4.1表单中增加隐藏域,提交商品属性对应的id 4.2修改商品模型GoodsModel.class.php/_before_update(),循环每个属性值,寻找有没有商品属性ID,如果有就修改;如果没有就添加: 注:replace into用法 replace into 跟 insert 功能类似,不同点在于:replace into 首先尝试插入数据到表中, 1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断) 则先删除此行数据,然后插入新的数据。 2. 否则,直接插入新数据。 要注意的是:插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据。 4.3AJAX删除 修改"-"号的JS代码,传入商品id 商品控制器中添加方法处理这个请求: 注:FIND_IN_SET(str,strlist): str 要查询的字符串 但是:这个函数是全表扫描,无法优化!所以如果表中数据量非常大,并且这个查询使用的非常频繁就不要用这个函数! PHP.40-TP框架商城应用实例-后台17-商品属性3-商品分类的修改与删除 标签:显示 href 优化 记录 lan gad div code lap 原文地址:http://www.cnblogs.com/zixuanfy/p/7077259.html
"display:none;" width="90%" class="tab_table" align="center">
商品类型:‘Type‘, ‘type_id‘, ‘id‘, ‘type_name‘, $data[‘type_id‘]); ?>
"attr_list">
php
$attrId = array(); // 所有出现过的属性ID
foreach ($gaData as $k => $v):
// 判断如果这个属性ID第一次出现就是+否则是-
if(in_array($v[‘attr_id‘], $attrId))
$opt = ‘-‘;
else
{
$opt = ‘+‘;
$attrId[] = $v[‘attr_id‘];
}
?>
/********** 修改商品属性 **********/
$gaid = I(‘post.goods_attr_id‘);
$attrValue = I(‘post.attr_value‘);
$gaModel = M(‘goods_attr‘);
$_i = 0; //循环次数
foreach ($attrValue as $k => $v)
{
foreach ($v as $k1 => $v1)
{
//这个replace into 可以实现同样的功能
//replace into: 如果记录存在就修改,记录不存在就添加。以主键字段判断一条记录是否存在
//$gaModel->execute(‘REPLACE INTO p39_goods_attr VALUES("‘.$gaid[$_i].‘","‘.$v1.‘","‘.$k.‘","‘.$id.‘")‘);
// 找这个属性值是否有id
if($gaid[$_i] == ‘‘)
$gaModel->add(array(
‘goods_id‘ => $id,
‘attr_id‘ => $k,
‘attr_value‘ => $v1,
));
else
$gaModel->where(array(
‘id‘ => array(‘eq‘, $gaid[$_i]),
))->setField(‘attr_value‘, $v1);
$_i++;
}
}
strlist 字段名 参数以”,”分隔 如 (1,2,6,8)
查询字段(strlist)中包含(str)的结果,返回结果为null或记录
上一篇:HTML笔记3
下一篇:16-6 WEB存储-通讯录实战
文章标题:PHP.40-TP框架商城应用实例-后台17-商品属性3-商品分类的修改与删除
文章链接:http://soscw.com/essay/104788.html