我想在代码点火器中单击提交按钮时将多个数据插入多行


I want to insert multiple data into multiple rows when a submit button is clicked in codeigniter

我想在单击提交 btn 时将多个数据插入多行

下面是我的 html 表单

<?php echo form_open('daily_shop_performance/insert_missing_records');?>
<table class="table" style=" width:100%; ">
<thead>
<tr>
<th>Days</th>
<th>Shop ID</th>
<th>Date</th>
<th>Takings</th>
<th>Payout</th>
<th>Actual Slippage</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>FRI</b></td>
<td><?php echo form_input('BDP_COST_CENTRE_NUMBER', set_value('BDP_COST_CENTRE_NUMBER',          ''), 'class=span1' ); ?></td>
        <td><?php echo form_input('BDP_DATE', set_value('BDP_DATE', ''),          'class=span2' ); ?></td>
        <td><?php echo form_input('BDP_TAKE', set_value('BDP_TAKE', ''),       'class=span2' ); ?></td>
        <td><?php echo form_input('BDP_PAYOUT', set_value('BDP_PAYOUT',     ''), 'class=span2' ); ?></td>
        <td><?php echo form_input('BDP_ACTUAL_SLIPPAGE',     set_value('BDP_ACTUAL_SLIPPAGE', ''), 'class=span2' ); ?></td>
</tr>
<tr>
<td><b>SAT</b></td>
<td><?php echo form_input('BDP_COST_CENTRE_NUMBER1',         set_value('BDP_COST_CENTRE_NUMBER1', ''), 'class=span1' ); ?></td>
        <td><?php echo form_input('BDP_DATE1', set_value('BDP_DATE1', ''),     'class=span2' ); ?></td>
        <td><?php echo form_input('BDP_TAKE1', set_value('BDP_TAKE1', ''),     'class=span2' ); ?></td>
        <td><?php echo form_input('BDP_PAYOUT1', set_value('BDP_PAYOUT1',     ''), 'class=span2' ); ?></td>
        <td><?php echo form_input('BDP_ACTUAL_SLIPPAGE1',          set_value('BDP_ACTUAL_SLIPPAGE1', ''), 'class=span2' ); ?></td>
    </tr>
    <tr>
    <td><?php echo form_submit('submit', 'Next', 'class="btn btn-large"',     'type="button"'); ?></td>
    </tr>
</table>
<?php echo form_close();?>

我的插入语句是将每条记录作为数组插入

工作正常,但不确定如何仅插入包含数据的表单字段而忽略空表单字段

Below is my insert query
public function insert_missing_records()
{
    $insert_data = array(
    array(
            'BDP_ID'=>                  '',
            'BDP_COST_CENTRE_NUMBER'=>      $this->input->post('BDP_COST_CENTRE_NUMBER'),
            'BDP_DATE' =>               $this->input->post('BDP_DATE'),
            'BDP_DAY_CODE'=>            '1',
            'BDP_TAKE'=>                $this->input->post('BDP_TAKE'),
            'BDP_PAYOUT'=>              $this->input->post('BDP_PAYOUT'),
            'BDP_ACTUAL_SLIPPAGE'=>         $this->input->post('BDP_ACTUAL_SLIPPAGE'),
            'BDP_PROCESS_DATE'=>            $this->performance_m->date(),
            'BDP_RUN_DATE'=>            $this->performance_m->date(),
            'BDP_CREATED_BY'=>          $this->session->userdata('BL_USERNAME'),
            'BDP_SOURCE'=>              'M',
            'BDP_UPDATE_DATE'=>         '',
            'BDP_UPDATED_BY'=>          $this->session->userdata('BL_USERNAME')
    ),
    array(
            'BDP_ID'=>                  '',
            'BDP_COST_CENTRE_NUMBER'=>      $this->input->post('BDP_COST_CENTRE_NUMBER1'),
            'BDP_DATE' =>               $this->input->post('BDP_DATE1'),
            'BDP_DAY_CODE'=>            '2',
            'BDP_TAKE'=>                $this->input->post('BDP_TAKE1'),
            'BDP_PAYOUT'=>              $this->input->post('BDP_PAYOUT1'),
            'BDP_ACTUAL_SLIPPAGE'=>         $this->input->post('BDP_ACTUAL_SLIPPAGE1'),
            'BDP_PROCESS_DATE'=>            $this->performance_m->date(),
            'BDP_RUN_DATE'=>            $this->performance_m->date(),
            'BDP_CREATED_BY'=>          $this->session->userdata('BL_USERNAME'),
            'BDP_SOURCE'=>              'M',
            'BDP_UPDATE_DATE'=>         '',
            'BDP_UPDATED_BY'=>          $this->session-    >userdata('BL_USERNAME') 
        )
        );
    $insert = $this->db->insert_batch('WHOUSE1.DLY_BWR_MAN_PERFORMANCE',         $insert_data);
    echo '<pre>' .$this->db->last_query(). '</pre>';
            return $insert;
}

如果有人能帮忙,会很高兴。谢谢

您可以将

表单中的每个字段分配给一个变量并检查它是否为空。如果它不为空,则向数组添加适当的条目。

尝试这样的事情:

$array1 = array(
            'BDP_ID'=>                  '',
            //and others which needs to be inserted always
)
$variable1 = $this->input->post('BDP_COST_CENTRE_NUMBER');
if( !empty($variable) )
{
    $array1['BDP_COST_CENTRE_NUMBER'] = $variable1;
}
//and so on for each variable
$insert_data = array(
    $array1,
    $array2, //same thing for this array
)

为了改善这一点 - 您可以将所有参数放入数组(列表)中并遍历它,而不是编写大量代码。祝你好运