2017-05-03 6 views
0

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":""} 

My機能

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

私のビュー

で私のモデルでMy機能(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 
        } 
       } 
       ?> 

は、私はあなたがデコードされたJSONを反復処理していると$datum変数が値だけではなく、キーが含まれているため、あなたは、このエラーを持って、このエラー 不正な文字列オフセット「ip1_proxmox」

答えて

0

を得ました。

あなたは、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を移動しました。

+0

あなたは正しいです!ありがとうございました。私は2つのforeachを使用する[受け入れられた答え](http://stackoverflow.com/questions/7462250/php-json-decode-from-database)から見てきました –

関連する問題