我正在尝试在学校管理系统中生成多张发票。 这是问题所在:
例如,我在数据库中有10个学生
如果按连续顺序选择学生,我可以生成发票。 学生1,学生2,学生3,学生4
但是一旦我错过了一个连续顺序的学生,并尝试以随机顺序生成,就会给我一个不确定的偏移量错误: 学生1,学生4,学生5,学生7
代码如下:
for($x = 1; $x <= count($this->input->post('studentId')); $x++) {
$insert_data = array(
'class_id' => $this->input->post('className'),
'section_id' => $this->input->post('sectionName'),
'student_id' => $this->input->post('studentId')[$x],
'payment_name_id' => $payment_name_id
);
$status = $this->db->insert('payment', $insert_data);
}
return ($status === true ? true : false);
一旦生成发票,编辑发票同样适用。 我什至尝试将for循环更改为while循环,这不会给我任何错误,但是如果选择的学生是随机顺序的话,这只是不保存:
$x = 1;
$form_fields = count($this->input->post('editStudentId'));
while($x <= $form_fields) {
if(!empty($this->input->post('editStudentId')[$x])) {
$update_payment_data = array(
'class_id' => $this->input->post('editClassName'),
'section_id' => $this->input->post('editSectionName'),
'student_id' => $this->input->post('editStudentId')[$x],
'payment_name_id' => $id
);
$status = $this->db->insert('payment', $update_payment_data);
}
$x++;
}
return ($status === true ? true : false);
答案 0 :(得分:2)
将for
替换为foreach
:
foreach ($this->input->post('studentId') as $studentId) {
$insert_data = array(
'class_id' => $this->input->post('className'),
'section_id' => $this->input->post('sectionName'),
'student_id' => $studentId,
'payment_name_id' => $payment_name_id
);
$status = $this->db->insert('payment', $insert_data);
}