2

私のデータベースには、「amount_raised」と「funding_goal」という名前の 2 つの列があります。

「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 に答える