1

我想在数据库 mysql 中插入以下日期值作为 json 值,如下例所示:

我希望它们在数据库表行中:

     Column static  |                     Column data_1
Row1:      12       |  ["1111111111", "2222222222", "3333333333", "4444444444"]
Row2:      34       |  ["5555555555", "6666666666", "7777777777"]
Row1:      56       |  ["8888888888", "9999999999"]

演示: 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);
?>
4

1 回答 1

2

我不建议将这种格式数据存储在数据库中,但是如果您想以这种方式保存,则必须进行一些更改:

更改您的表格:

您正在使用非固定数量的字段,您可以使用如下结构:

<input name="static[NUMBER]" value="XXX">
<input name="data_NUMBER[1]" value="YYYYY">

在php中你可以获得static=NUMBERas的信息$_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_)             
    );
}

http://codepad.viper-7.com/i2xvKC(此处为演示)

于 2012-07-22T18:57:49.997 回答