2

在我的数据库中,我有两列名为“amount_raised”和“funding_goal”。

我想从我的数据库中获取“amount_raised”等于或大于“funding_goal”的所有记录。

我正在使用 Codeigniters 活动记录。这是我到目前为止所拥有的:

    function get_recently_successful($limit, $offset){

        $data = '';

        $this->db->order_by('date','desc');
        $this->db->where('published', '1'); 
        $this->db->where('amount_raised >=', 'funding_goal'); 
        $query = $this->db->limit($limit, $offset)->get('projects'); 

        foreach ($query->result() as $row) {
            $data[] = array(
                'id' => $row->id,
                'date' => $row->date,
                'project_title' => $row->project_title,

            );
        }

        return $data;

    }

上面的代码只返回数据库中的所有值。不是我在哪里指定的。我怎样才能让它工作?

4

2 回答 2

3

试试这个。

$this->db->where('amount_raised >= funding_goal');

现在,您通过查询发送值“funding_goal”,从而使其:
WHERE amount_raised >= 'funding_goal'

您希望它与列而不是字符串进行比较:
WHERE amount_raised >= funding_goal

您始终可以通过插入以下内容对查询进行故障排除:

echo $this->db->last_query();

排后$query =

于 2012-05-08T11:44:49.563 回答
0

如果您在数组中使用多个条件,您也可以尝试以下操作:

$this->db->where(array('status' => 'Active', 'category' => $catId));

您也可以像这样使用另一个条件:

$this->db->where('amount_raised >=funding_goal');

您可以使用 last_query() 来查看 sql 查询以及理解它。

于 2016-03-29T04:51:47.077 回答