两表联查
需求
不同商品的属性扩展
如:
音乐:中文片名、英文片名、商品别名、介质/格式、国家地区、导演/指挥、主唱、长度、歌词
书:作者、出版社、图书书号、出版日期、图书页数、字数、所属分类
等…
思想
通过对产品类型划分,使用属性类别(attr_type)
表作为中间表,对属性(attribute)
扩展连接。
代码
1 | //获取attr_type表数据 |
显示不同类型
controller1
2
3
4//显示属性
$attr_type_id=isset($_GET['attr_type_id'])?(int)$_GET['attr_type_id']:0;
$attr_model=new AttributeModel();
$attr_list=$attr_model->getAttrByTypeId($attr_type_id);
model1
2
3
4
5
6
7
8//通过属性类别id获取属性
public function getAttrByTypeId($attr_type_id){
$sql="select * from attribute natural join attr_type where 1";
if($attr_type_id>0)
$sql.=" and attr_type_id=$attr_type_id";
$sql.=' order by attr_type_id';
return $this->db->fetchAll($sql);
}
view1
2
3
4
5
6
7
8
9
10
11<div class="form-div">
<form action="" name="searchForm">
<img src="/Application/View/Admin/images/icon_search.gif" width="26" height="22" border="0" alt="SEARCH">
按商品类型显示:<select name="goods_type" onchange="location.href='index.php?p=Admin&c=Attribute&a=list&attr_type_id='+this.value">
<option value="0">所有商品类型</option>
foreach($attr_type_list as $rows):
<option value="<?php echo $rows['attr_type_id']?>" <?php echo $rows['attr_type_id']==$attr_type_id?'selected':''?>><?php echo $rows['attr_type_name']?></option>
endforeach;
</select>
</form>
</div>
切换选项禁用状态
1 | <form action="" method="post" name="theForm" > |