ループ内のオブジェクトからアイテムを削除するには
$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
@ループ内のオブジェクトから項目を削除する
また、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 を使用して現在のレコードを削除します)
これは、php ロジックを使用せずに SQL クエリを使用して行うことができます。SQL に条件を記述します。
例
//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);