使用Codeigniter,如何使用get_where,但不包括某些行?

时间:2013-11-20 08:03:06

标签: javascript php jquery mysql codeigniter

我试图从最近事件的数据库6中提取的函数。然后我想测试事件是否通过某个参数相互关联(我已经找到了这个函数),但是然后想要从数组中删除重复并添加下一个最近的事件。

例如,假设我有#1-6事件。事件#3与事件#1有关。然后我想从数组中删除事件#3,然后添加到数组事件#7中。完成后,我想检查事件#1,2,4,5,6,7以确保不再重复。我试图继续这个过程,直到每个事件都是独一无二的。

这是我目前的代码:

public function get_user_events($limit=6, $offset= 0) 
    {
        $user = $this->ion_auth->user()->row();
        $event = $this->db->order_by("time_initiated","desc")
        ->get_where("events",array("user_id" => $user->id), $limit, $offset)
        ->result_array();
        $noduplicates = FALSE;
        while(!$noduplicates) {
        foreach ($event as $a) {
            if(test_if_repeated($a, $event)) { remove from array; $noduplicates = true } 
        }
        // somehow need to refresh the list to get that 7th element
        }
        return $event;
    }

1 个答案:

答案 0 :(得分:0)

我认为检索更多的记录比你需要的更有效,然后处理所有“相关”和“重复”的东西 - 然后只返回你需要的记录数。

例如,检索最新的30个事件(任意数字)。然后,用“相关”和“重复”记录做你的魔术。假设您剩下24条记录 - 只返回该列表中最近的6条记录。

检索和处理30个事件与6个事件几乎没有任何性能损失。