2013-03-17 84 views
0

我想從數據庫中選擇CodeIgnigher PHP應用程序中的一些數據,並想進行一些更改並插入到另一個表中。我想將所選記錄插入到IN表中。目前,我只能將一行插入到表格中。發佈數據Codeigniter中的表單中的多行

請問您能指點什麼,這裏做錯了什麼。

我的表是。 Out_Table(id,name ..)和In_Table(id,name,quantity ..)。

我的模型代碼是:

<?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; 
    } 

} 

?> 

查看代碼:

 <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> 

控制器代碼:

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 
     } 
    } 

回答

0

以及我cannt看到是in_table/out_table代碼ü尚未提供。

插入許多行,移動你想要從文檔

$data = array(
    array(
     'title' => 'My title' , 
     'name' => 'My Name' , 
     'date' => 'My date' 
    ), 
    array(
     'title' => 'Another title' , 
     'name' => 'Another Name' , 
     'date' => 'Another date' 
    ) 
); 

$this->db->insert_batch('mytable', $data); 

insert_batch

例子或U可以循環所有烏爾行in_table,並通過一個插入其中一個,如果它是一個maintaince工作,美不關心多個查詢

$data= $this->db->get('Out_table'); 
try 
{ 
    if ($data->num_rows == 0) 
     throw new Exception('table empty'); 

    foreach($data->result() as $row) 
    { 

     //modifiy the row as u want 
     $modified=$row; 

     $q=$this->db->insert('in_table',$modified); 
     if(! $q) 
      throw new Exception('failed to insert row id:'.$row->id); 
    } 
    echo $data->num_rows.'rows inserted';  
} 


catch (Exception $e) 
{ 
    echo $e->getMessage(); 
// Stop method execution with return, or use exit 
    return; 
} 
相關問題