I want to select some data in the CodeIgnigher PHP application from the database and want to make some change and insert to another table. I would like to insert as as many as selected records into the IN table. Currently I am getting only one row inserted into the out table.
Can you please point, what is being done wrong here.
My tables are. Out_Table (id, name..) and In_Table (id, name, quantity..).
My Model Code is:
<?php
class ShoppingListM extends CI_Model {
public function getData() {
$query = $this->db->get('products');
return $query->result();
}
function SaveForm($form_data) {
$this->db->insert('SLists', $form_data);
if ($this->db->affected_rows() == '1') {
return TRUE;
}
return FALSE;
}
}
?>
View Code:
<div class="divTable">
<fieldset>
<!-- these will be affected by check all -->
<div class="divRow">Product Name | Quantity | Packages</div>
<div class="divRow"><input type="checkbox" size="100" class="checkall"> Check all</div>
<br>
<?php foreach ($records as $rec) {
?>
<div class="divRow"><input type="checkbox">
<input size="5" type="hidden" value="<? echo $rec->id; ?>" name="id"></input>
<input size="20" type="text" value="<? echo $rec->name; ?>" name="name"></input>
<input size="5" type="text" value="" name="quantity"></input>
<select name="package">
<option name="case">Case</option>
<option name="box">Box</option>
<option name="box">Single Bottle</option>
</select>
</div>
<br>
<?
}
?>
</fieldset>
</div>
<div><input type="submit" name="submit"/></div>
</form>
Controller Code:
class ShoppingListController extends CI_Controller {
public function index() {
//$data['val'] = array("test1", "test2", "test3");
// $this->load->model('HomeModel');
//$data['records'] = $this->HomeModel->getData();
$this->load->model('ShoppingListM');
$data['records'] = $this->ShoppingListM->getData();
$this->form_validation->set_rules('name', 'Name', 'required|max_length[255]');
$this->form_validation->set_rules('qty', 'qty', '');
$this->form_validation->set_rules('package', 'Package', 'required|max_length[128]');
if ($this->form_validation->run() == FALSE) // validation hasn't been passed
{
$this->load->view('ShoppingListV', $data);
}
else // passed validation proceed to post success logic
{
// build array for the model
$form_data = array(
'name' => set_value('name'),
'quantity' => set_value('quantity'),
'package' => set_value('package')
);
// run insert model to write data to db
// run insert model to write data to db
if ($this->ShoppingListM->SaveForm($form_data) == TRUE) // the information has therefore been successfully saved in the db
{
redirect('ShoppingListController/success'); // or whatever logic needs to occur
}
else
{
echo 'An error occurred saving your information. Please try again later';
// Or whatever error handling is necessary
}
}