订单提交后:
目前创新互联建站已为超过千家的企业提供了网站建设、域名、网页空间、网站托管、企业网站设计、叠彩网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
$_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')
悬赏高吗?
HTML 代码开始
form action="biao.php" method="post"
select id="content" name="title"
option value="qq"QQ/option
option value="sina"新浪/option
option value="ifeng"凤凰/option
/select
input type="checkbox" name="list[]" value="a" /国内
input type="checkbox" name="list[]" value="b" /国际
input type="checkbox" name="list[]" value="c" /军事
input type="checkbox" name="list[]" value="d" /社会
input type="checkbox" name="list[]" value="e" /历史
input type="submit" value="Submit" /
/form
HTML 代码结束
PHP代码开始 把PHP代码放入 biao.php
?php
$title = $_POST['selse'];
$listz = implode($_POST['list'],',');
$conn=mysql_connect("localhost","root","root");
mysql_select_db("test",$conn);
$sql="INSERT INTO biao(title,list)VALUES('$title','$listz')";
if(!mysql_query($sql,$conn)){
echo "添加数据失败:".mysql_error();
} else {
echo "添加数据成功!";
}
?
PHP代码结束
PHP的话,使用foreach循环执行sql代码即可(可能运算量较大)
直接存数组中的字符串也可以。
如:
$a="0,1,2,3";
//$a=join(",",array(0,1,2,3)); 这样也可以
mysql_query("INSERT INTO admin (monday) VALUES($a)");
这样字段monday的就是0,1,2,3
(后一种具体答案,摘自adebug的回答,有改动)
lxydjx 正解,我来详细补充一下吧。未经测试、、、
//初始化
$sql = array();
// 从 a.php POST 过来的值
$_POST["xinxi"] = "20-2,19-1,18-1";
// 拆分为 array("20-2", "19-1", "18-1");
$post_data = explode(",", $_POST["xinxi"]);
// 循环数组
for($i = 0; $i count($post_data); $i++) {
// 再次拆分每一条信息为 array("20", "2"), array("19", "1"), array("18", "1")
$details = explode("-", $post_data[$i]);
// 将每一条信息添加到 $sql 数组中
array_push($sql, "(20121015194535193356, ".$details[0].", ".$details[1].")");
}
// 用 , 连接,转换为 string
$sql = implode(",", $sql);
// 插入数据库
mysql_query("INSERT INTO table_sales (dingid, detailsid, buynumber) VALUES ($sql)");
这保存的是不同行的内容,不能直接保存。
要做成行的形式保存。
$data=array(); //创建临时变量用以存储数据
$length=count($你的array名['cwidth']); //数你有多少行数据
for($i=0; $i=$length; $i++){ //循环
$data[$i]['cwidth']=$你的array名['cwidth'];
$data[$i]['cheight']=$你的array名['cheight'];
}
出来的数据就像是这样:
array(2){
[0]=array(2){
['cwidth']=string(5) "593px"
['cheight']=string(5) "203px"
}
[1]=array(2){
['cwidth']=string(5) "598px"
['cheight']=string(5) "111px"
}
}
然后再用$db-add($data);插入数据
直接存数组里的字符串就行了。
如$a="0,1,2,3,";或$a=join(",",array(0,1,2,3));
mysql_query("INSERT INTO admin (monday) VALUES($a)");
这样字段monday的就是0,1,2,3,
读取的时候要重新组成数组的话就分割重组。