【发布时间】:2018-02-17 19:00:51
【问题描述】:
我一直在尝试更新多行但没有成功,但每次我尝试最终都只更新了一行
控制器
public function update()
{
$data['msg'] = '';
$id = $_POST['reg_id'];
$data['students'] = $this->test_model->getStudentData();
if (isset($_POST['submit'])) {
if (empty($id) || $id==0) {
$data['msg'] = 'empty';
} else {
$userId = "'".implode("', ' ", $id)."'";
$class =$this->input->post('class');
$this->test_model->update($userId, $class);
}
}
$this->load->view('test', $data);
}
型号
public function update($where, $data){
$this->db->query('UPDATE table SET data="'.$data.'" WHERE where IN('.$where.')');
}
查看
对不起各位!我一直很忙,刚好有机会查看您的回复。
这是表单视图
我已经尝试了从你们那里得到的所有解决方案,但我无法得到我想要的。也许发布表单视图会帮助你们提供更好的解决方案
<form action="<?php echo base_url() ?>test/update" method="POST" >
<select name="class" id="">
<option value="some value">some value</option>
<option value="some value">some value</option>
<option value="some value">some value</option>
<option value="some value">some value</option>
<option value="some value">some value</option>
</select>
<input type="submit" name="submit" value="submit">
<table border="1">
<thead>
<tr>
<th>REG. ID</th>
<th>SURNAME</th>
<th>FIRST NAME</th>
<th>MIDDLE NAME</th>
<th>CLASS</th>
</tr>
</thead>
<tbody>
<?php foreach ($students as $key): ?>
<tr>
<td><input type="checkbox" name="reg_id[]" value="<?php echo $key->reg_id ?>"><?php echo $key->reg_id ?></td>
<td><?php echo $key->first_name ?></td>
<td><?php echo $key->last_name ?></td>
<td><?php echo $key->mid_name ?></td>
<td><?php echo $key->class ?></td>
</tr>
<?php endforeach ?>
</tbody>
</table><br>
</form>
【问题讨论】:
-
所以,显然
$id不是一个数组。你输出$id的内容了吗? -
另外,您使用的是
update_student_class,但向我们展示了来自模型的update,它们是否相同? -
输出显示它是一个数组,但仍然只更新一条记录
-
我想查看表单的视图代码,以便更好地理解输入。
标签: php codeigniter