消息:非法字符串偏移(使用codeigniter和mysql解码JSON)

时间:2017-05-03 18:01:58

标签: mysql json decode codeigniter-3

我有一个带有2个字段的表(tb_proxmox)(proxmox_id,proxmox_data)。我在 proxmox_data 字段中的记录(此虚拟记录)

{"ip0_proxmox":"31231","ip1_proxmox":"31312313","ip2_proxmox":"","nama_proxmox":"31","port_proxmox":"3131","user_proxmox":"","pwd_proxmox":"","type_proxmox":"","ram_proxmox":"","storage_proxmox":""}

我的控制器中的功能

    $data = array(
        'ambil_data' => $this->M_proxmox->tampilData('tb_proxmox'), 
        );      

我的模型中的功能(M_proxmox)

    public function tampilData($table){
    return $this->db->get($table)->result();
  }

在我的视图中

              <tbody>
              <?php
                $no = 1;
                foreach ($ambil_data as $row) {
                $datas = json_decode($row->proxmox_data,true);
                foreach($datas as $datum){
              ?>
                <tr>
                  <td><?php echo $no++ ;?></td>
                  <td><?php echo $row->proxmox_id; ?></td>
                  <td><?php echo $datum['ip1_proxmox'];?></td>

                  <td><a href="#" class="fa fa-pencil"></a><a href="#" class="fa fa-remove"></a></td>
                </tr>
              </tbody>
              <?php
                  }
                }
                ?>

我收到了这个错误  非法字符串偏移&#39; ip1_proxmox&#39;

1 个答案:

答案 0 :(得分:0)

您已收到此错误,因为您正在迭代已解码的json,$datum变量仅包含值,而不包含键。

如果你想以这种方式从json获取数据,你必须改变你的观点:

<tbody>
<?php
    $no = 1;
    foreach ($ambil_data as $row) {
        $datas = json_decode($row->proxmox_data,true);
?>
    <tr>
        <td><?php echo $no++ ;?></td>
        <td><?php echo $row->proxmox_id; ?></td>
        <td><?php echo $datas['ip1_proxmox'];?></td>

        <td><a href="#" class="fa fa-pencil"></a><a href="#" class="fa fa-remove"></a></td>
    </tr>
<?php
    }
?>
</tbody>

我还将</tbody>移到了foreach之外。