数据库用一个int类型的字段保存前端多个字段(该字段为多选)
2017-01-21 18:17
393 查看
现象:一般我们都是前端多少个字段,数据库就保存多少个字段,
例如,填写爱好(多选):1、打篮球 2、踢足球 3、打台球
数据库有两种方法保存:1,添加一个字段hobby:1,2,3
2,新增一张表保存所有值:uid bobby_id
1 1
1 2
1 3
新的方法:
保存到数据库时:
$map = array(
'打篮球' => 1,
'踢足球' => 2,
'打台球' => 4
);
$hobby = '';foreach($js_hobby as $val){ $hobby |= $map[$val];}
读取数据库时:
$js_hobby = [];
foreach($map as $key => $val){
if($val & $hobby){
$js_hobby[] = $key;
}
}
解读:利用或运算实现多变一,保存数据;利用与运算实现一变多,读取数据
例如,填写爱好(多选):1、打篮球 2、踢足球 3、打台球
数据库有两种方法保存:1,添加一个字段hobby:1,2,3
2,新增一张表保存所有值:uid bobby_id
1 1
1 2
1 3
新的方法:
保存到数据库时:
$map = array(
'打篮球' => 1,
'踢足球' => 2,
'打台球' => 4
);
$hobby = '';foreach($js_hobby as $val){ $hobby |= $map[$val];}
读取数据库时:
$js_hobby = [];
foreach($map as $key => $val){
if($val & $hobby){
$js_hobby[] = $key;
}
}
解读:利用或运算实现多变一,保存数据;利用与运算实现一变多,读取数据
相关文章推荐
- 关于CheckBoxList点击多选的时候值可以保存到数据库中的一个字段中,同时在编辑读取的时候可以把数据库的值赋给CheckBoxList
- 更新数据库所有表的某一个指定字段 ,附加对‘将 varchar 值转换为数据类型为 int 的列时发生语法错误’处理方法
- 用VC在 数据库表里增加一个字段读出,然后显示、保存
- sqlserver中int 类型的字段,值为null的时候引发一个问题
- Kettle 生成的XML格式数据保存到Oracle 数据库的BLOB类型字段中
- Web前端 测试数据接口url,如何post一个XML字符串,点击保存就可以保存到数据库
- 数据库int类型字段长度的含义
- SQL SERVER 2008数据库的表中修改字段的数据类型后,不能保存
- Kettle 生成的XML格式数据保存到Oracle 数据库的BLOB类型字段中
- 2009-12-01 15:10 SQL SERVER 2008数据库的表中修改字段的数据类型后,不能保存
- C# 与数据库中字段类型 Int16(short), Int32(int), Int64(long)的取值范围、区别 。string长度
- .Net中保存和读取数据库中Image类型(二进制)字段
- SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int
- sql server数据库的表中修改一个表的字段的数据类型后,不能保存
- SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int
- 怎样得到数据库中某一个表的某一个字段在设计时候的数据类型
- 数据库有一个CHAR类型的字段,是用来存储时间的,如:1:20(一个小时20分),怎么对它算平均值和总值?
- RM2011 Lookup类型字段实现多选及保存、显示
- hibernate查询数据库char类型字段时只返回一个字符
- SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int