以下代码适用于从表单插入数组,但它会将每个值插入到自己的行中。如何将数组插入一行?
<?php
require_once('config.php');
require_once('open_db.php');
$palette=$_POST['colors_palette'];
while (list ($key,$val) = @each ($palette)) {
}
For ($i=0; $i<sizeof($palette);$i++) {
$query="INSERT INTO style_test1 (colors_palette) VALUES ('".$palette[$i]."')";
Mysql_query($query) or die(mysql_error());
}
Echo "Record is inserted";
?>
<form method="post" action="insert_array.php" >
<input type="checkbox" name="colors_palette[]" value="jewel" />
<input type="checkbox" name="colors_palette[]" value="bright" />
<input type="checkbox" name="colors_palette[]" value="soft" />
<input type="checkbox" name="colors_palette[]" value="earth" />
<input type="submit" name="Submit" value="Submit" />
</form>
答案 0 :(得分:3)
要插入字符串:
<?php
require_once('config.php');
require_once('open_db.php');
$palette=$_POST['colors_palette'];
$query="INSERT INTO style_test1 (colors_palette) VALUES ('". serialize($palette) ."')";
mysql_query($query) or die(mysql_error());
echo "Record is inserted";
?>
然后您可以unserialize
将数据作为数组或对象返回。
更好的方法是插入 JSON格式字符串。
$query="INSERT INTO style_test1 (colors_palette) VALUES ('". json_encode($palette). "')";
然后您可以使用json_decode
将其解码回数组。
<强>内爆:强>
$pal = implode(',', $palette);
$query = "INSERT INTO style_test1 (colors_palette) VALUES ('".$pal."')";
答案 1 :(得分:1)
将数组转换为逗号分隔变量使用PHP中的implode
函数:
$query="INSERT INTO style_test1 (colors_palette) VALUES ('".implode(',',$palette)."')";
编辑:试试这段代码:
<?php
require_once('config.php');
require_once('open_db.php');
$palette=$_POST['colors_palette'];
$query="INSERT INTO style_test1 (colors_palette) VALUES ('".implode(',',$palette)."')";
mysql_query($query) or die(mysql_error());
echo "Record is inserted";
?>
答案 2 :(得分:1)
您可以使用PHP函数
serialize($myArray);
此函数将数组转换为字符串。所以你可以插入一行字段。
在字符串上使用unserialize来获取数组。
你也可以破坏数组来获取字符串
$string = implode(',',$myArray);