消息:非法字符串偏移量(使用codeigniter和mysql解码JSON)
问题描述:
我有一个带有2个字段(proxmox_id,proxmox_data)的表(tb_proxmox)。我在现场记录proxmox_data(这个伪记录)消息:非法字符串偏移量(使用codeigniter和mysql解码JSON)
{"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
}
}
?>
我得到这个错误 非法串偏移“ip1_proxmox”
答
你得到这个错误,因为你迭代解码通过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。
你是对的!谢谢。我从[接受的答案](http://stackoverflow.com/questions/7462250/php-json-decode-from-database)看到使用2 foreach –