2013-04-25 93 views
-2

如何獲得最後兩天的記錄是我的查詢但出現錯誤。檢索最近兩天的記錄

function getbdologHistoryByRefManuals($obj) 
{ 
    $this->db->select('bdo_logs.*,transaction_statuses.status'); 
    $this->db->from('bdo_logs'); 
    $this->db->join('transactions','transactions.id=bdo_logs.id'); 
    $this->db->join('transaction_statuses','transaction_statuses.id=transactions.trans_status_id'); 
    $this->db->where('log_date >', ADDDATE(CURDATE() , INTERVAL -2 DAY)); 

    $query = $this->db->get(); 

    //echo $this->db->last_query(); 
    if($query->num_rows() == 0){ 
     return null; 
    } 

      return $query->result(); 
} 
+0

你最近兩天的記錄是什麼意思? – 2013-04-25 07:06:14

+1

什麼是錯誤? – 2013-04-25 07:14:06

+0

這意味着我想要兩天的記錄意味着今天和昨天的記錄 – 2013-04-25 07:16:03

回答

2
function getbdologHistoryByRefManuals($obj) 
{ 
    $this->db->select('bdo_logs.*,transaction_statuses.status'); 
    $this->db->from('bdo_logs'); 
    $this->db->join('transactions','transactions.id=bdo_logs.id'); 
    $this->db->join('transaction_statuses','transaction_statuses.id=transactions.trans_status_id'); 
    $this->db->where('DATE(log_date) >', 'ADDDATE(CURDATE() , INTERVAL -2 DAY)'); 

    $query = $this->db->get(); 

    if($query->num_rows() == 0){ 
     return null; 
    } 

    return $query->result(); 
} 

你缺少包裹在where子句

編輯ADDDATE功能:
或者你也可以這樣調用

$query =" SELECT 
       bdo_logs.*, 
       transaction_statuses.status 
      FROM bdo_logs 
      JOIN transactions 
       ON transactions.id = bdo_logs.id 
      JOIN transaction_statuses 
       ON transaction_statuses.id = transactions.trans_status_id 
      WHERE DATE(log_date) > ADDDATE(CURDATE() , INTERVAL -2 DAY)"; 
$result = $this->db->query($query); 
+0

我想最近兩天的記錄不是最後兩條記錄。 – 2013-04-25 07:12:18

+0

@MichealScofield我已經更新了答案。 – 2013-04-25 07:15:48

+1

沒有它的工作 – 2013-04-25 07:19:10

2

簡單的方法:

$today = date('Y-m-d'); 
$newdate = date('Y-m-d', strtotime("-2 days")); 
echo $today; 
echo '<br />'; 
echo $newdate; 

現在,把$newdate在哪裏條件。