我正在尝试从select2字段插入多行数据。行中的某些字段可能有多个选择。我的代码仅处理一行数据和一个具有多个选择的字段,如下图所示。但是对于多行,插入无法按预期方式工作。请好人,我需要您的帮助。
public function save_staff()
{
$subjects = count($this->input->post('subject'));
$names = count($this->input->post('names'));
if($names > 0){
for($i=0; $i < $names; $i++){
for($p=0; $p < $subjects; $p++){
$names_array = array(
'names' => $this->input->post('names')[$i],
'sign' => $this->input->post('sign')[$i],
'subject' => $this->input->post('subject')[$p]
);
$this->db->insert($this->table, $names_array);
}
}
上面的代码仅处理一行数据。并按照第二张图片所示对数据库中的数据进行标准化。。如果添加另一行数据且其中一个字段具有多个选择(如第一个选择),则我的代码无法处理它。如何调整代码以使其正确?第三张图片捕获了我的代码无法处理的屏幕截图。
答案 0 :(得分:0)
尝试在您的输入中执行此操作:
<select name="subject[][]" class="form-control selectpicker" multiple>
控制器:
$a1 = $this->input->post('subject');
$count1 = count($a1);
for ($i=0; $i < $count1 ; $i++) {
$count2 = count($a1[$i]);
if(!empty($count2)){
for ($j=0; $j < $count2 ; $j++) {
$names_array = array(
'subject' => $a1[$i][$j]
);
$this->db->insert($names_array);
}
}
}
答案 1 :(得分:-1)
您的$ this-> db-> insert()函数看起来像什么?
您可能需要对其重新格式化以遵循以下要求:
INSERT INTO table_name
(
col_1,
col_2,
col_3
)
VALUES
( <--- first record being added
'test',
'someValue',
2
),
( <--- second record being added
'test_theSecond',
'someValue',
1234
);