gpt4 book ai didi

php - CodeIgniter Active Record 一次删除多条记录

转载 作者:行者123 更新时间:2023-12-04 16:16:46 26 4
gpt4 key购买 nike

这是我的 Controller 功能之一。它从名为“users”的数据库表中获取所有行并将其放入一个数组中。然后它加载一个名为“deleteuser”的 View ,其中包含传递的数组数据。

function deleteuser(){



$this->load->model('users');
$employees['staff'] = $this->users->getStaff();
$this->load->view('deleteuser', $employees);
}

在 deleteuser View 中,有一个从数组生成的复选框类型输入。表单操作调用一个名为 remove 的函数。
<form action="remove" method = "post">

<?php foreach($staff as $row): ?>
<div class="checkbox">
<label>
<input type="checkbox" name="delete[]" value="<?php echo $row->id ?>" />
<?php echo $row->lastName . ", " . $row->firstName; ?>
<br />
</label>

<?php endforeach; ?>
<br />
<br />
<input type="submit" name = "remove" value = "Delete" class = "btn btn-danger btn-lg pull-left" />

</div>

remove 函数从输入中获取删除数组并将其传递给名为 deleteUser 的模型函数。
function remove(){
$data = $this->input->post('delete');

$this->users->deleteUser($data);

}

现在这是我遇到一些麻烦的地方。下面是 deleteUser 的模型函数,但它给了我一个 undefined offset :1 错误。任何帮助,将不胜感激。
function deleteUser($data)
{
if ($data) {
for ($i = 0; $i <= count($data); $i++)
{
$this->db->where('id', $data[$i]);
$this->db->delete('users');
}
}
}

最佳答案

尽管@DamienPirsy 的回答在解决您的问题方面是正确的,但我建议采用另一种方法。我会一次删除所有记录,而不是循环删除。这将最大限度地减少您对数据库的查询数量。

function deleteUser($data)
{
if (!empty($data)) {
$this->db->where_in('id', $data);
$this->db->delete('users');
}
}

关于php - CodeIgniter Active Record 一次删除多条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26810609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com