2017-06-05 30 views
-2

我有優惠券,並希望在創建日期後獲得使用促銷代碼的所有行。從指定日期中選擇所有銷售

每個銷售都有時間戳,創建的優惠券有時間戳。我想選擇優惠券後的所有銷售。

繼承人我有。

$coupon = $this->db->query("SELECT * FROM group_coupon WHERE code='test' AND active='1'"); 


if (count($coupon) > 0) { 


    $amount = $this->db->query("SELECT * FROM group_coupon WHERE code='test'")->row()->amount; 

    $quantity = $coupon->row()->quantity; 
    echo "Quantity: " . $quantity; 

echo "Time: " . $coupon->row()->timestamp; 

// I know the query is wrong 
$time_st = $coupon->row()->timestamp; 
    $all = $this->db->query("SELECT * FROM sale WHERE coupon='test' AND $time_st > timestamp")->row()->coupon; 

// then id like to do a count($all) 

} 
+0

與此代碼會發生什麼?你正在使用SQL服務器或MySQL? – chris85

+0

mysql --------- – Gilbert

+0

好的,這段代碼會發生什麼?錯誤,不正確的結果,其他? – chris85

回答

0

您已經犯了一點邏輯錯誤。

假設您正在查看的優惠券是在下午1點進行的,並且該時間由數字100表示​​(在此情況下爲$time_st)。然後,在下午2點之後的一個小時還有另一張優惠券,以200(timestamp)表示。然後檢查是否$time_st > timestamp,這個評估結果爲100 > 200,這是不正確的。

你想要做的是檢查你正在檢查的優惠券的時間戳是小於其他時間戳,所以你知道他們是在未來製造的。

您的查詢應該是:

$all = $this->db->query("SELECT * FROM sale WHERE coupon='test' AND $time_st < timestamp")->row()->coupon; 
相關問題