javascript - 使用Codeigniter,如何使用get_where,但不包含某些行?

标签 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;
    }

最佳答案

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

例如,检索最新的 30 个事件(任意数量)。然后,对“相关”和“重复”记录施展魔法。假设您还剩下 24 条记录 - 只需返回该列表中最新的 6 条记录即可。

检索和处理 30 个事件与 6 个事件相比几乎不会影响性能。

关于javascript - 使用Codeigniter,如何使用get_where,但不包含某些行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20090416/

相关文章:

javascript - 如何在 AngularJS 中设置抽象状态作为背景

php - mySQL 选择优先级 - 选择一行或另一行(选择默认或 "fallback"行)

php - 无法访问本地主机 :8080 上的 style.css

javascript - 更新查询字符串(无重定向),无需 HTML 5

javascript - JQuery .autocomplete 和 html

javascript - 基于 Django 和 Ajax 的模型保存

javascript - Angular 路由结果为 404 - 无法获取

php - 如何在 PHPmailer 中显示所有选中的复选框

javascript - 循环时通过 JavaScript 将数据传递到弹出页面

javascript - DataTables jQuery 插件 - Firefox 声称 "illegal character"