How to use an JSON return from a php query into an foreach loop? -


i using codeigniter , inside function call controller return data want use in foreach built insert statement.

the json returned looks this:

{     "data": [         {             "id": "743",             "day": "1",             "day_type": "party",             "day_dresscode": "black",             "day_p_id": "1",             "description": "test desc",             "name": "test"         },         {             "id": "743",             "day": "2",             "day_type": "party",             "day_dresscode": "white",             "day_p_id": "1",             "description": "test desc 1",             "name": "test 2"         }     ] } 

my php looks below:

// got json $datavar = $this->model->get_json_data($id,$code);   // decode json $datavar_decode['data'] = json_decode($datavar,true);  

below foreach:

$i = 1;         foreach($datavar_decode['data'] $data):             $data_insert = array(                'val1'    => $data['val1'],                'val2'    => $data['val2'],                'val3'    => $data['val3'],                'val4'    => $data['val4']            );           $this->db->insert('mssqltable', $data_insert);         $i++;        endforeach; 

it gives me below error:

invalid argument supplied foreach() 

don't use json.

you're problem returning array of objects, , that's behavior $query->result() or if use $query->row() object representing single row.

in order return array, use $query->row_array() single row, or multiple records returned use $query->result_array().

see details: https://www.codeigniter.com/user_guide/database/results.html


Comments

Popular posts from this blog

neo4j - finding mutual friends in a cypher statement starting with three or more persons -

php - How to remove letter in front of the word laravel -

minify - Minimizing css files -