Kawazoe Kazuke
Kawazoe Kazuke

Reputation: 175

How to insert multidimensional array to database in CI?

I have this array.

Array
(
[customer_id] => Array
    (
        [customer_id] => 132
    )

[file_name] => Array
    (
        [0] => ht5appletv11.png
        [1] => twitter-100px11.png
    )

[file_path] => Array
    (
        [0] => C:/xampp/htdocs/maintenance_assurance_sys/uploads/ht5appletv11.png
        [1] => C:/xampp/htdocs/myproject/uploads/twitter-100px11.png
    )

)

I want to insert these data into database with Row by Row in CI.But the customer_id is always same in each row. file_name and file_path will change. For example:

How can i do that?

+---------------------------------------------------------------------+
|  customer_id     | file_name                |file_path              |
|   132            |  ht5appletv11.png        | C:/xampp/htodcs/..... |
|   132            |  twitter-100px11.png     | C:/xampp/htodcs/..... |
+---------------------------------------------------------------------+

Here is my Code...

function insertUploadedFiles($data)
{   
    
    foreach ($data as $fileData)
    {   
        $datas[] = array(
            'customer_id' => $fileData['customer_id'],
            'file_name' => $fileData['file_name'],
            'file_path' => $fileData['file_path']
        );
        
    }
    $this->db->insert_batch('t_customer_file_ref', $datas);
}

But it's only get customer_id and the file_name & file_path show error like this.

Message: Undefined index: file_name

Undefined index: file_path

Upvotes: 2

Views: 66

Answers (1)

manian
manian

Reputation: 1438

Please try the below code,

function insertUploadedFiles($data)
{   

foreach ($data['file_name'] as $key => $fileData)
{   
      $datas[] = array(
          'customer_id' => $data['customer_id']['customer_id'],
          'file_name' => $fileData,
          'file_path' => $data['file_path'][$key]
      );

  }
  $this->db->insert_batch('t_customer_file_ref', $datas);
}

I assume that both the file_name and file_path elements will have same indexes like 0, 1, 2 etc.,

Upvotes: 3

Related Questions