我知道已经有人问过,但我无法解决这个问题。以下是我的控制模块
public function ahome()
{
$this->load->model('model');
$data['user'] = $this->model->selall('user');
$this->load->view('ahome', $data);
if ($this->input->post('del'))
{
$did = $this->input->post('chk');
// print_r($did);
for ($i = 0; $i < count($did); $i++)
{
$multi = $did[$i];
print_r($multi);
$this->model->delall("user", $multi);
// redirect("control/ahome");
}
}
}
这是我的模型模块
public function delall($tb,$wh)
{
$this->db->query("delete from $tb where uid in('$wh')");
}
现在问题是它只删除单行而不是多行
答案 0 :(得分:0)
在查询字符串中,尝试删除$wh
变量周围的引号。
public function delall($tb,$wh)
{
$this->db->query("delete from $tb where uid in ($wh)");
}
应该让它发挥作用;但是,您应该使用CodeIgniter的查询绑定。像这样:
public function delall($tb,$wh)
{
$this->db->query("delete from $tb where uid in (?)", array($wh));
}
有关详细信息,请参阅this answer。
答案 1 :(得分:0)
试试这个, 控制器,
public function ahome()
{
$this->load->model('model');
$data['user'] = $this->model->selall('user');
$this->load->view('ahome', $data);
if ($this->input->post('del'))
{
$did = $this->input->post('chk');
// print_r($did);
foreach ($did as $d_id)
{
$this->model->delall("user", $d_id);
// redirect("control/ahome");
}
}
}
型号:
public function delall($tb,$wh)
{
$this->db->where('id',$wh);
$this->db->delete($tb);
return true;
}