Sujan Shrestha
Sujan Shrestha

Reputation: 1040

store array data retrieved from forms to database

I have a form. And there is add button to add more forms according to requirement. The Working demo is in JSFiddle. https://jsfiddle.net/szn0007/eanhpLkg/

My PHP code is :

$data['client_name'] = $_POST['client_name'];
$data['address'] = $_POST['address'];
$data['fiber_length'] = $_POST['fiber_length'];
$data['phone_number'] = $_POST['phone_number'];
$data['package'] = $_POST['package'];
$data['result'] = $_POST['result'];
$data['remarks'] = $_POST['remarks'];

foreach($data['client_name'] as $c )
{
    $sql = "INSERT INTO ct_staff_activity_ftth(client_name) VALUE('$c') ";
    $this->db->query($sql);
}

How can i insert all the dataas entered at once.

Upvotes: 0

Views: 43

Answers (3)

Hk01
Hk01

Reputation: 70

use this

for($i=0; $i<count($_POST['client_name']); $i++)
{
         $client_name    = $_POST['client_name'];
         $address        = $_POST['address'];
         $fiber_length   = $_POST['fiber_length'];
         $phone_number   = $_POST['phone_number'];
         $package        = $_POST['package'];
         $result         = $_POST['result'];
         $remarks        = $_POST['remarks'];   
         $data = array(
                  'cleint_name'      =>  $client_name,
                  'address'          => $address,
                  'fiber_length'     => $fiber_length,
                  'phone_number'     => $phone_number,
                  'package'          => $package,
                  'result'           => $result,
                  'remarks'          => $remarks,
                  );

         $q   = $this->user_model->add_record($data);
}

Upvotes: 1

Gerard
Gerard

Reputation: 15786

Use the following to build the statement and than do a single write:

$string = "";
foreach($data['client_name'] as $key => $c)
{
    $string .= "(" . $c . "," . $data['address'][$key] . "," . $data['fiber_length'][$key] . "," . $data['phone_number'][$key] . "," . $data['package'][$key] . "," . $data['result'][$key] . "," . $data['remarks'][$key] . "),";
}
$sql = "INSERT INTO ct_staff_activity_ftth(client_name, address, fiber_length, phone_number, package, result, remarks) VALUES " . rtrim($string, ",");
$this->db->query($sql);

Upvotes: 0

Tharanga
Tharanga

Reputation: 57

1st create a new model call Generic_model.php Then paste this code class Generic_model extends CI_Model {

public function insertData($tablename, $data_arr=array())
{


    $ret = 0;
    try {
    //insert data 
        $this->db->insert($tablename, $data_arr);
        //create return as last inserted record id
        $ret = $this->db->insert_id() + 0;
        //return $ret;
        return true;
    } catch (Exception $err) {
         //return error
        return $err->getMessage();
    }


}

} Finally go into your controller Within the relevant function call it as

//initialize model

$this->load->model('Generic_model', '', TRUE);

$recid=$this->load->model->Generic_model->insertData(‘table_name’,$data_array);

if you echo $rec_id you can see the last insert record id

that only

Upvotes: 0

Related Questions