Fel
Fel

Reputation: 362

Attempt to transpose then batch-insert user submission causes: "Unknown column 'Array' in 'field list'" error

I am getting an errors with CodeIgniter's insert_batch() method:

Unknown column 'Array' in 'field list'

and

Array to string conversion


View

<input type="text" name="companionship[]">
... and so forth.

Controller

public function addstatistics()
{   
     $i = 0;
     foreach ($_POST['companionship_id'] as $companionship_id):
        $value1[$i++] = array(
            'companionship_id'=>    $companionship_id
        );
     endforeach;
        
     foreach($_POST['zone_id'] as $zone_id):
            $value2[$i++] = array(
                    'zone_id'=> $zone_id
            );
     endforeach;
        
     foreach($_POST['district_id'] as $district_id):
            $value3[$i++] = array(
                'district_id'=> $district_id
            );
     endforeach;
        
     foreach($_POST['area_id'] as $area_id):
            $value4[$i++] = array(
                'area_id'=> $area_id
            );
     endforeach;
        
     foreach($_POST['baptism'] as $baptism):
            $value5[$i++] = array(
                'baptism'=> $baptism
            );
     endforeach;
        
     foreach($_POST['confirm'] as $confirm):
            $value6[$i++] = array(
                'confirm'=> $confirm
            );
     endforeach;
        
     foreach($_POST['ibd'] as $ibd):
            $value7[$i++] = array(
                'ibd'=> $ibd
            );
     endforeach;
        
     foreach($_POST['iasm'] as $iasm):
            $value8[$i++] = array(
                'iasm'=>$iasm
            );
     endforeach;
        
     foreach($_POST['ni'] as $ni):
            $value9[$i++] = array(
                'ni'=>$ni
            );
     endforeach;
        
     foreach($_POST['ph'] as $ph):
            $value10[$i++] = array(
                'ph'=>$ph
            );
     endforeach;
        
     foreach($_POST['wh'] as $wh):
        $value11[$i++] = array(
            'wh'=>$wh
        );
     endforeach;

   $this->my_model->addstatistics($value1,$value2,$value3,$value4, $value5,$value6,$value7,$value8,$value9,$value10,$value11);
 }   
    

Model

addstatistics($value1, $value2, $value3, $value4, $value5, $value6, $value7, $value8, $value9, $value10, $value11)
{
      $data = array(
                'companionship_id'  => $value1,
                'zone_id'           => $value2,
                'district_id'       => $value3,
                'area_id'           => $value4,
                'baptism'           => $value5,
                'confirm'           => $value6,
                'ibd'               => $value7,
                'iasm'              => $value8,
                'ni'                => $value9,
                'ph'                => $value10,
                'wh'                => $value11
                        
           );
                    
           $row = array();
           $columns = array();
           for($x=0; $x<count($data); $x++)
           {
                $row = array(
                    'companionship_id'=> $value1,
                    'zone_id'=> $value2,
                    'district_id'=> $value3,
                    'area_id'=> $value4,
                    'baptism'=> $value5,
                    'confirm'=> $value6,
                    'ibd'=> $value7,
                    'iasm'=> $value8,
                    'ni'=> $value9,
                    'ph'=> $value10,
                    'wh'=> $value11,
                    'year'=> date('Y'),
                    'month'=> date('M'),
                    'week' => weekdate(),
                 'created_by'=> $this->session->userdata('login_id')
            
           );
           array_push($columns, $row);
           $rows = array();
         }
          //printA($columns);
            
         $query= $this->db->insert_batch('monthly_statistics', $columns);
 }
    

How can I solve this problem?

Upvotes: 0

Views: 641

Answers (2)

Fel
Fel

Reputation: 362

after a few hours of pondering, I already fix the errors and now it working fine

here is the code

public function mymethod()
    {



        $companionship_id = $this->input->post('companionship_id[]');
        $zone_id = $this->input->post('zone_id[]');
        $district_id = $this->input->post('district_id[]');
        $area_id = $this->input->post('area_id[]');
        $baptism = $this->input->post('baptism[]');
        $confirm = $this->input->post('confirm[]');
        $ibd = $this->input->post('ibd[]');
        $iasm = $this->input->post('iasm[]');
        $ni = $this->input->post('ni[]');
        $ph = $this->input->post('ph[]');
        $wh = $this->input->post('wh[]');

        $value = array();
        for($i=0; $i<count($companionship_id); $i++)
        {
            $value[$i] = array(
                'companionship_id'  =>      $companionship_id[$i],
                'zone_id'           =>      $zone_id[$i],
                'district_id'       =>      $district_id[$i],
                'area_id'           =>      $area_id[$i],
                'baptism'           =>      $baptism[$i],
                'confirm'           =>      $confirm[$i],
                'ibd'               =>      $ibd[$i],
                'iasm'              =>      $iasm[$i],
                'ni'                =>      $ni[$i],
                'ph'                =>      $ph[$i],
                'wh'                =>      $wh[$i]

            );
        }

        $this->db->insert_batch('monthly_statistics',$value);


        $this->session->set_flashdata("success",alert("alert-success","Successfully Inserted"));
        redirect(base_url('to_url'));
        exit();
    }

Upvotes: 0

BEingprabhU
BEingprabhU

Reputation: 1686

Try this.

public function addstatistics($value1,$value2,$value3,$value4,$value5, $value6,$value7,$value8,$value9,$value10,$value11)
{
      $data = array(
                'companionship_id'  => $value1,
                'zone_id'           => $value2,
                'district_id'       => $value3,
                'area_id'           => $value4,
                'baptism'           => $value5,
                'confirm'           => $value6,
                'ibd'               => $value7,
                'iasm'              => $value8,
                'ni'                => $value9,
                'ph'                => $value10,
                'wh'                => $value11

           );

           $row = array();
           $columns = array();
           for($x=0; $x<count($data); $x++)
           {
                $row = array(
                    'companionship_id'=> $data['companionship_id'][$x]['companionship_id'],
                    'zone_id'=> $data['zone_id'][$x]['zone_id'],
                    'district_id'=> $data['district_id'][$x]['district_id'],
                    'area_id'=> $data['area_id'][$x]['area_id'],
                    'baptism'=> $data['baptism'][$x]['baptism'],
                    'confirm'=> $data['confirm'][$x]['confirm'],
                    'ibd'=> $data['ibd'][$x]['ibd'],
                    'iasm'=> $data['iasm'][$x]['iasm'],
                    'ni'=> $data['ni'][$x]['ni'],
                    'ph'=> $data['ph'][$x]['ph'],
                    'wh'=> $data['wh'][$x]['wh'],
                    'year'=> date('Y'),
                    'month'=> date('M'),
                    'week' => weekdate(),
                 'created_by'=> $this->session->userdata('login_id')

           );
           array_push($columns, $row);
           $rows = array();
         }
          //printA($columns);

         $query= $this->db->insert_batch('monthly_statistics', $columns);
 }

Upvotes: 0

Related Questions