热线电话:13121318867

登录
2019-02-26 阅读量: 834
在Codeigniter中将多行插入数据库

在我的界面中,我连续排列了3个常量行,包括项目,数量,重量......等列。当我选择行中的数据并提交表单时,只会将第3行数据插入到数据库中。我希望每个包含数据的行都插入到数据库中。对此有何解决方案?谢谢。

更新::我曾尝试使用PHP数组,下面是更新的代码。但是我已经停留在foreach部分,我想将数据插入数据库。

我的看法:

<tr class="item-details">

<td><span class="rowNumber">1</span></td>

<td class="">

<?php

$options = array(

'' => '~Choose An Item~'

);

foreach ($item as $rows){

$options[$rows->id] = $rows->item_name;

}

$select = array(

'name' => 'item_name[]',

'id' => 'item_name',

'class' => 'form-control'

);

echo form_dropdown('item', $options,set_value('item_name'),$select);

?>

</td>

<td class=""><input type="number" class="item-qty" name="qty[]"/></td>

<td><input type="number" name="weight[]" class="weight" /></td>

<td><input type="text" name="promo_code[]" value=""/></td>

<td><input type="text" name="gp[]" value=""/></td>

<td><input type="text" name="discount[]" value=""/></td>

<td><input type="text" name="unit_price[]" value=""/></td>

<td align="right" class="totalwithouttax">0.00</td>

<td align="right" class="totaltax">0.00</td>

<td align="right" class="totalamtincltax">0.00</td>

</tr><br/>

<tr class="item-details">

<td><span class="rowNumber">2</span></td>

<td class="">

<?php

$options = array(

'' => '~Choose An Item~'

);

foreach ($item as $rows){

$options[$rows->id] = $rows->item_name;

}

$select = array(

'name' => 'item_name[]',

'id' => 'item_name',

'class' => 'form-control'

);

echo form_dropdown('item', $options,set_value('item_name'),$select);

?>

</td>

<td class=""><input type="number" class="item-qty" name="qty[]"/></td>

<td><input type="number" name="weight[]" class="weight" /></td>

<td><input type="text" name="promo_code[]" value=""/></td>

<td><input type="text" name="gp[]" value=""/></td>

<td><input type="text" name="discount[]" value=""/></td>

<td><input type="text" name="unit_price[]" value=""/></td>

<td align="right" class="totalwithouttax">0.00</td>

<td align="right" class="totaltax">0.00</td>

<td align="right" class="totalamtincltax">0.00</td>

</tr><br/>

<tr class="item-details">

<td><span class="rowNumber">3</span></td>

<td class="">

<?php

$options = array(

'' => '~Choose An Item~'

);

foreach ($item as $rows){

$options[$rows->id] = $rows->item_name;

}

$select = array(

'name' => 'item_name[]',

'id' => 'item_name',

'class' => 'form-control'

);

echo form_dropdown('item', $options,set_value('item_name'),$select);

?>

</td>

<td class=""><input type="number" class="item-qty" name="qty[]"/></td>

<td><input type="number" name="weight[]" class="weight" /></td>

<td><input type="text" name="promo_code[]" value=""/></td>

<td><input type="text" name="gp[]" value=""/></td>

<td><input type="text" name="discount[]" value=""/></td>

<td><input type="text" name="unit_price[]" value=""/></td>

<td align="right" class="totalwithouttax">0.00</td>

<td align="right" class="totaltax">0.00</td>

<td align="right" class="totalamtincltax">0.00</td>

解决办法:首先使你的全部3部分HTML表单输入名称数组

<input type="number" class="item-qty" name="qty[]"/>

<input type="number" name="weight" class="weight[]" />

...

然后将数据数组循环为

$qty = $this->input->post('qty', TRUE);

$weight = $this->input->post('weight', TRUE);

$orderItems = array();

for ($i = 0; $i < count($qty); $i++) {

if ($qty[$i]) {

$orderItems[] = array (

'order_id' => $orderHeaderId ,

'product_id' => 7 ,

'item' => 'TEST' ,

'qty' => $qty[$i] ,

'weight' => $weight[$i]

...

);

}

}

现在你可以使用insert_batch方法作为

if ($orderItems) {

$this->db->insert_batch('table_name', $orderItems);

}

0.0000
2
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子