我希望在数据库mysql中插入以下日期值作为json值,如下例所示:
我希望它们在数据库表行中:
Column static | Column data_1
Row1: 12 | ["1111111111", "2222222222", "3333333333", "4444444444"]
Row2: 34 | ["5555555555", "6666666666", "7777777777"]
Row1: 56 | ["8888888888", "9999999999"]
DEMO: http://codepad.viper-7.com/WzGz3p
<form method="post">
<input name="static[]" value="12">
<input name="data_1[]" value="1111111111">
<input name="data_1[]" value="2222222222">
<input name="data_1[]" value="3333333333">
<input name="data_1[]" value="4444444444">
<input name="static[]" value="34">
<input name="data_1[]" value="5555555555">
<input name="data_1[]" value="6666666666">
<input name="data_1[]" value="7777777777">
<input name="static[]" value="56">
<input name="data_1[]" value="8888888888">
<input name="data_1[]" value="9999999999">
<input type="submit">
</form>
我的php代码不能正常运行:
<?php
$data = array();
$data_1 = $_POST['data_1'];
$static = $_POST["static"];
foreach($static as $idx=>$val){
$data[] = array(
'static' => $static[$idx],
'data_1' => json_encode(Array($data_1[$idx*2],$data_1[$idx*2+1]))
);
}
//$this->db->insert_batch('MyTable', $data);
echo "<pre>";
print_r($data);
?>
答案 0 :(得分:2)
我不建议将此格式数据存储在数据库中,但如果您想以这种方式保存,则必须进行一些更改:
更改表单:
您使用的是非固定数量的字段,您可以使用以下结构:
<input name="static[NUMBER]" value="XXX">
<input name="data_NUMBER[1]" value="YYYYY">
在php中,您可以将static=NUMBER
的信息作为$_POST["data_".NUMBER]
<form method="post">
<input name="static[1]" value="12">
<input name="data_1[0]" value="1111111111">
<input name="data_1[1]" value="2222222222">
<input name="data_1[2]" value="3333333333">
<input name="data_1[3]" value="4444444444">
<input name="static[2]" value="34">
<input name="data_2[0]" value="5555555555">
<input name="data_2[1]" value="6666666666">
<input name="data_2[2]" value="7777777777">
<input name="static[3]" value="56">
<input name="data_3[0]" value="8888888888">
<input name="data_3[1]" value="9999999999">
<input type="submit">
</form>
并更改php:
foreach($static as $idx=>$val){
$data_=$_POST["data_".$idx];
$data[] = array(
'static' => $static[$idx],
'data_1' => json_encode($data_)
);
}