将数组序列化存储,例如
创新互联建站2013年开创至今,公司以网站制作、成都网站制作、系统开发、网络推广、文化传媒、企业宣传、平面广告设计等为主要业务,适用行业近百种。服务企业客户上1000家,涉及国内多个省份客户。拥有多年网站建设开发经验。为企业提供专业的网站建设、创意设计、宣传推广等服务。 通过专业的设计、独特的风格,为不同客户提供各种风格的特色服务。
$stooges
=
array('Moe','Larry','Curly');
$new
=
serialize($stooges);
print_r($new);echo
"br
/";
print_r(unserialize($new));
结果:a:3:{i:0;s:3:"Moe";i:1;s:5:"Larry";i:2;s:5:"Curly";}
Array
(
[0]
=
Moe
[1]
=
Larry
[2]
=
Curly
)
把$new写进数据库就行啦
$class[] = array($row['CLASSIFY']);
$kinds[] =array($row['KIND']);
别忘了加[]。
最好在前面再加上
$class = array();
$kinds = array();
防止一些未定义错误。
订单提交后:
$_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')
首先你要学会查错,最简单的方式就是打印出来看。你可以在第一个变量$arr_ip下一行,把这个变量打印出来看是不是数组,如果是数组,直接存入数据库时就是array,你可以把数组json_encode一下,这样存入进去的就是序列化后的字符串了,但你拿出来时也要json_decode一下,把字符串还原成数组。