繁体   English   中英

使用json_encode在数据库中插入值的问题

[英]Problem with insert value in database with json_encode

我想在数据库表的行上插入以下值,并使用以下php代码( foreach ),但是在插入后出现以下错误,我该怎么办?

值:

<div class="column">
    <input type="text" name="start_date[1][]" value="1111">
    <input type="text" name="end_date[1][]" value="1111">
    <input type="text" name="price_change[1][]" value="1111">
</div>
<div class="column">
    <input type="text" name="start_date[2][]" value="2222">
    <input type="text" name="end_date[2][]" value="2222">
    <input type="text" name="price_change[2][]" value="2222">
</div>
<div class="column">
    <input type="text" name="start_date[3][]" value="3333">
    <input type="text" name="end_date[3][]" value="3333">
    <input type="text" name="price_change[3][]" value="3333">
</div>

邮递区号:

    $residence_ups_input = $this->input->post('start_date');
    $residence_upe_input = $this->input->post('end_date');
    $residence_upc_input = $this->input->post('price_change');
    var_dump($residence_ups_input); // output this is: nobool(false)
    $residence_p = array();
    foreach ($residence_ups_input as $idx => $name) { //line 134        
        $residence_p[] = array(
            'start_date' => $residence_ups_input[$idx],
            'end_date' => $residence_upe_input[$idx],
            'price_change' => $residence_upc_input[$idx]
        );
    }
    ;
    $data = array(
        //'name' => $this -> input -> post('name'),
        'residence_p' => json_encode($residence_p)
    );
    $this->db->insert('tour_foreign', $data);

错误:

遇到PHP错误
严重程度:警告
消息:为foreach()提供了无效的参数
文件名:inser.php
行号:134

更换

 foreach ($residence_ups_input as $idx => $name) { 

 foreach (get_object_vars($residence_ups_input) as $idx => $name) { 

您要将一个对象传递给foreach,它需要一个关联数组。 从现在开始

json_decode($string, true)

代替

json_decode($string)

并像这样访问变量:

$var['key'];

而不是$ var-> key

$residence_ups_input变量不是数组

使用此代码:

array_push($residence_ups_input,$this->input->post('start_date'));
array_push($residence_upe_input,$this->input->post('end_date'));
array_push($residence_upc_input,$this->input->post('price_change'));

获取值,然后使用foreach()

更改所有列:

<div class="column">
    <input type="text" name="start_date[1][]" value="1111">
    <input type="text" name="end_date[1][]" value="1111">
    <input type="text" name="price_change[1][]" value="1111">
</div>
....

至:

<form method="post">
<div class="column">
    <input type="text" name="start_date[]" value="1111">
    <input type="text" name="end_date[]" value="1111">
    <input type="text" name="price_change[]" value="1111">
</div>
....

</form>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM