在循环中从对象中删除项目
$query = $this->db->query("YOUR QUERY");
$rows = $query->result();
foreach ($rows as $key => $row)
{
if($row->parent_id == 1){
unset($rows[$key]);
// code here to delete current record
}
}
print_r($rows) // remove row with parent_id = 1
查看更多@Removing an item from object in a loop
您还可以更改您的 select 语句以获取 parent_id 不是 eq 1 的所有记录(或其他“where”逻辑来过滤行......请参见下面的示例和链接)
$this->db->get('mytable')
$this->db->where('parent_id !=', 1);
或者
//get all except parent id 1,4 or 7
$parent_ids = array(1, 4, 7);
$this->db->where_not_in('parent_id', $parent_ids);
从数据库中删除记录作为您之前的问题标题建议(在 CodeIgniter 中使用 foreach 删除当前记录)
您可以通过在 sql 中编写条件来使用 sql 查询而不使用任何 php 逻辑来执行此操作...在http://codeigniter.com/user_guide/database/active_record.html中查看更多信息
例子
//delete record where parent_id = 1
$this->db->delete('mytable', array('parent_id' => 1));
或者
//delete record where parent_id = 1 or 5 or 8
$names = array(1, 5, 8);
$this->db->where_in('parent_id', $names);
$this->db->delete('mytable');
或者
//delete record where parent_id = 1
$this->db->where('parent_id', 1);
$this->db->delete('mytable');
或者
//delete all record where parent_id not eq 1
$this->db->where('parent_id !=', 1);
//delete all record where parent_id less than 10
$this->db->where('parent_id <', 10);