6个回答
展开全部
订单提交后:
$_POST['list'] 的值会是:
array(a,b,c,d,e,a,b,a,b,c,d);
根本就没有使用价值,即无法分清楚是这些选项是属于哪个名称的。所以,要么用js先在提交之前加工一个“list”的值,或者改交下list的名称,如下:
<input type="checkbox" name="list[]" value="a" />
改为:
<input type="checkbox" name="list_sina[]" value="a" />
其他的按些修改。
在提交之后的处理代码如下:
$title = isset($_POST['title']) ? $_POST['title'] : array();
$insert_data = array();
foreach($title as $row){
$name = trim($row);
$list = isset($_POST['list_'.$name]) ? implode(',',$_POST['list_'.$name]) : '';
$insert_data[] = "('$name','$list')";
}
if(!empty($insert_data)) $mysql->query('INSERT INTO mysql_table(name,list)VALUES '.implode(',',$insert_data));
这样的数据库查询语句为:
INSERT INTO mysql_table(name,list)VALUES ('sina','a,b,c,d,e'),('qq','a,b'),('ifeng','a,b,c,d')
展开全部
如果想存储数组的话可以先转为字符串之后在存储,
就像a,b,c,d,e,f 这种是用implode函数分割数组array(a,b,c,d,e,f)而得到的字符串,这是一维数组,如果是多维的数组可以先序列化之后在存储,应该是这个函数serialize你看查查看,
这种存储方式很不利于扩展,如果需进一步开发的话应该换一种扩展性稍强一些的存储方式
就像a,b,c,d,e,f 这种是用implode函数分割数组array(a,b,c,d,e,f)而得到的字符串,这是一维数组,如果是多维的数组可以先序列化之后在存储,应该是这个函数serialize你看查查看,
这种存储方式很不利于扩展,如果需进一步开发的话应该换一种扩展性稍强一些的存储方式
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你表单提交的是一个数组,直接接收,将你接收到得数据数组用foreach循环然后进行数据处理,比如你这里的以逗号分隔,最后将处理好的数据插入到数据库就好了啊、没有你想象的那么复杂。
追问
title 字段 与 list 字段的数据应该怎样相对存入库????
如:sina => a,b,c,d,e
qq => a,b
追答
大哥。。。。。您只需要把处理好的数据insert到你要into的字段就好了,你a b c d e如果是一个input标签过来的就可以经过处理后添加到sina字段,另一个input标签传过来的a b你或许需要处理或者直接就添加到qq字段就好了啊。就看你sql语句怎么写而已。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
mysql不支持数组类型,根据你的情况,建议可以将其勾选的选项以固定的格式,比如用逗号连接成字符串,然后存储进mysql的table中,然后查询时,得出查询结果,再做相应的转换。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就按你同在这样存入数据库
调用的时候按逗号分割来用就行了。
存入
foreach($_POST['list'] as $key => $v){
$list.=$v.",";
}
取值
$sina = explode(",",$sina['list']);
调用的时候按逗号分割来用就行了。
存入
foreach($_POST['list'] as $key => $v){
$list.=$v.",";
}
取值
$sina = explode(",",$sina['list']);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询