2016-04-20 18 views
1

フォームフィールドFROMDATETODATEを使用して日付フィルタを作成したいとします。日付フィルタで結果を取得するにはどうすればよいですか?

これは、開始日から終了日の範囲の結果を提供します。

はここ

function search($status,$from,$to){ 
    if($status =="" || $from =="" || $to =="") { 
    $this->db->select('a.*'); 
    $this->db->from('acc a'); 
    } 

    if($status !="" || $from !="" || $to !="") { 
    $this->db->like('status', $status); 
    $this->db->where('fromdate <=',$from); 
    $this->db->where('todate >=',$to); 
    } 

    $result = $this->db->get(); 
    //echo $this->db->last_query(); 

    return $result->result(); 
} 

私の問題は、私は何も結果が表示されないで、私のモデルです。私の過ちは誰にも見えますか?

答えて

1

可能性のある問題#1

あなたがテーブルの短い名前を宣言する場合は、あなたがそれを使用する必要があります。 accテーブルのショートネームをaと宣言しました。 ですから、このようなlikewhereでそれを使用する必要があります。

$this->db->like('a.status', $status); 
$this->db->where('a.fromdate <=', $from); 
$this->db->where('a.todate >=', $to); 

可能性のある問題#2

はたぶん、あなたの問題はDATEの形式です。私はあなたのデータベースの行のタイプとしてDATEを使用すると仮定します。 DATEローはおそらくYYYY-mm-dd形式を使用します。 $fromまたは$to変数でこの形式を使用しない場合、このクエリは正しくありません。

これを確認するには、コントローラー(およびdie();)またはログファイルに出力します。 (あなたはapplication/config.phpでそれを有効にした場合)は、コマンドでどこからでも何でもログインできます。

log_message("error", "this is the text of your log message from date: " . $from . ", and to date: " . $to); 

ログファイルがapplication/logsフォルダにあります。

ヒント:

この機能では、変数のすべてを宣言する必要があるため、AND(&&)事業者とif statementを宣言することをお勧めします。

この問題を解決するお手伝いをしたいと思います。

+0

あなたの答えをありがとう、それは今でも仕事です:D –

関連する問題