【发布时间】:2020-03-05 03:43:01
【问题描述】:
我有一个添加学校学生分数的页面。提交学生成绩后,输入框会重新填充数据库中的结果。
这样做是为了
无法完成为学生添加分数的教师可以返回并从上次中断的地方继续。
如果要进行编辑,教师会知道要编辑的位置和内容。
通常用于修订目的。
但是,我注意到,当对特定学生进行编辑时,即使班上的每个人都已经获得了分数,该科目也会重复。
请参阅下图以了解我的意思。
我的模特:
public function addrn($data3) {
$this->db->insert_batch('mtscores_rn', $data3);
return $this->db->affected_rows();
}
我的控制器:
function assigngradeActionRNMT()
{
//var_dump(count($this->input->post('number')));
for($i=0; $i<count($this->input->post('number')); $i++)
{
$data3[]=array(
'section_id' => $this->input->post('section_id'),
'subject_id' => $this->input->post('subject_id'),
'class_id' => $this->input->post('class_id')[$i],
'student_id' => $this->input->post('student_id')[$i],
'session_id' => $this->input->post('session_id'),
'mt_ca1' => $this->input->post('mt_ca1')[$i],
'mt_ca2' => $this->input->post('mt_ca2')[$i],
'mt_ca3' => $this->input->post('mt_ca3')[$i],
);
}
//var_dump($data3);
$inserted = $this->mtprimary_model->addrn($data3);
if($inserted > 0)
{
$this->session->set_flashdata('msg', '<div class="alert alert-success">Grade Added successfully</div>');
//Echo back success json
redirect('admin/mtprimary/index');
}
}
我的看法:
<?php foreach($students as $student){ ?>
<div class="row">
<div class="col-lg-3">
<div class="form-group">
<label>Student Name</label>
<input type="hidden" name="number[]" value="">
<input type="hidden" name="section_id" value="<?php echo $section_id; ?>">
<input type="hidden" name="session_id" value="<?php echo $student->session_id; ?>">
<input type="hidden" name="student_id[]" value="<?php echo $student->student_id; ?>">
<input type="hidden" name="class_id[]" value="<?php echo $class_id; ?>">
<input type="text" value="<?php echo $CI->GetStudentNameWithID($student->student_id); ?>" class="form-control " readonly>
</div>
</div>
<div class="col-lg-3">
<label>Class Expectation </label>
<textarea name="mt_ca1[]" class="form-control" rows="3" ><?php echo $student->mtscores? $student->mtscores->mt_ca1: 0; ?></textarea>
</div>
<div class="col-lg-3">
<label>Milestone Achieved</label>
<textarea name="mt_ca2[]" class="form-control" rows="3" ><?php echo $student->mtscores? $student->mtscores->mt_ca2: 0; ?></textarea>
</div>
<div class="col-lg-2">
<div class="form-group">
<label>Remark</label>
<input type="text" name="mt_ca3[]" class="form-control" value="<?php echo $student->mtscores? $student->mtscores->mt_ca3: 0; ?>" >
</div>
</div>
</div>
【问题讨论】:
-
可能主题没有作为表单中的参数传递
-
从技术上讲,您正在执行插入操作,并且在您执行插入操作后尝试从数据库中取回数据时,您应该通过按日期创建的 distinct(subject) 排序来限制结果,限制为 1 . 这将返回具有最后插入值的唯一主题列表。更好地了解您如何存储数据?多个表中的关系?这将帮助您创建一个独特的列表。
标签: php mysql codeigniter