2012-05-08 36 views
2

在我的数据库中,我有两列名为'amount_raised'和'funding_goal'。Codeigniter - 如何从数据库中获取一个字段值比另一个字段更多的记录?

我想从我的数据库中获得'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; 

    } 

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

回答

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 =行。

+0

不错的工作。学到了新东西。谢谢mucho。 – hairynuggets

0

如果您使用的是阵列中的多个条件,你可以试试下面的还有:

$这个 - > DB->其中(阵列(“状态” =>“主动”,“分类” => $ catId));

可以使用另一种状况,以及这样的:

$这 - > DB->其中( 'amount_raised> = funding_goal');

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

相关问题