aee快递查询 在php_第48课 thinkphp5添加商品库

博客介绍了在PHP中处理商品属性数据的思路。首先从数据库查询属性值并在HTML页面下拉框展示,接着以二维数组提交数据,然后从提交数据中取属性首个值组合对应价格存入product表,最后给出了添加库存的PHP代码及存入表的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[TOC]

思路:

1. html页面里属性下拉框里的值是从goods_attr联attr里的查出来传到模板里的.在属性的下拉栏里展示出来

2. html页面里用二维数组的结构goods_attr[{$k}][]把数据提交过来.

{volist name="radioAttrRes" id="radioAttr"}

{$key}

{/volist}

库存量操作

foreach($goodsProRes as $k0=>$v0):

?>

<?php foreach($radioAttrRes as $k=>$v):?>

请选择

<?php foreach($v as $k1=>$v1):

$arr=explode(',', $v0['goods_attr']);

if(in_array($v1['id'], $arr)){

$select='selected="selected"';

}else{

$select='';

}

?>

value="<?php echo $v1['id'];?>"><?php echo $v1['attr_value'];?>

<?php if($k0==0){ echo '+'; }else{ echo '-'; }?>

<?php foreach($radioAttrRes as $k=>$v):?>

请选择

<?php foreach($v as $k1=>$v1):?>

+

保存信息

>

html页面打次的数据

3. html提交过来的数据中取goods_attr二维数组里的每个属性的第一个值用英文的逗号组合在一起对应相应的价格存入product表里(goods_num里的键名和goods_attr里属性值的键名一样).

打印的数据:

//goods_num里的键名和goods_attr里属性值的键名一样

Array

(

[goods_attr] => Array

(

[颜色] => Array

(

[0] => 72

[1] => 73

[2] => 74

[3] => 74

)

[尺码] => Array

(

[0] => 75

[1] => 76

[2] => 77

[3] => 76

)

)

[goods_num] => Array

(

[0] => 100

[1] => 50

[2] => 80

[3] => 90

)

)

// 库存

public function product($id){

if(request()->isPost()){

$data=input('post.');

$goodsAttr=$data['goods_attr'];

$goodsNum=$data['goods_num'];

$product=db('product');

foreach ($goodsNum as $k => $v) {

$strArr=array();

foreach ($goodsAttr as $k1 => $v1) {

$strArr[]=$v1[$k]; //goods_num里的键名和goods_attr里属性值的键名一样

}

sort($strArr);

$strArr=implode(',', $strArr);

$product->insert([

'goods_id'=>$id,

'goods_number'=>$v,

'goods_attr'=>$strArr

]);

}

$this->success('添加库存成功!');

return;

}

$_radioAttrRes=db('goods_attr')->alias('g')->field('g.id,g.attr_id,g.attr_value,a.attr_name')->join("attr a",'g.attr_id=a.id')->where(array('g.goods_id'=>$id,'a.attr_type'=>1))->select();

$radioAttrRes=array();

// 数组格式重组

foreach ($_radioAttrRes as $k => $v) {

$radioAttrRes[$v['attr_name']][]=$v;

}

// 获取商品的库存信息

$goodsProRes=db('product')->where('goods_id','=',$id)->select();

$this->assign([

'radioAttrRes'=>$radioAttrRes,

'goodsProRes'=>$goodsProRes,

]);

return view();

}

存入的product表里的效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值