2013-04-22 131 views
1

我希望做的是當我在用戶登錄要通知他們該產品即將過期PHP和MYSQL日期到期

什麼查詢我需要使用此,如何我的任何想法可以這樣做嗎?

謝謝。

+0

一個很好的問題.. – 5ervant 2013-04-22 16:58:20

回答

0

試試這個:

SELECT p.ProductName, s.Quantity, s.Price, s.DateExpiry FROM seller s, Product p 
WHERE p.PID = s.PID AND DateExpiry < DATE_ADD(NOW(), INTERVAL 3 DAY) AND Custid = $_SESSION['user'] 
0

所有你需要做的應該加入一些「時間的數學」,以你的條件:

WHERE p.PID = s.PID AND DateExpiry < ADDDATE(NOW(), INTERVAL 3 DAY) AND Custid = $_SESSION['user'] 

這將在3天內使用時間從現在開始,而不是當前時間做比較。

當然,可以在任何時間改變的時間間隔,例如使用INTERVAL 1 DAY只增加1天。

有效單位可以發現here

作爲替代方案,你可以只寫一個簡單的加法,如果您使用的是不是太舊服務器版本:

WHERE p.PID = s.PID AND DateExpiry < NOW() + INTERVAL 3 DAY AND Custid = $_SESSION['user'] 
0

您沒有更改查詢一位,但你必須做一些計算你的數據,現在我不知道你的dateexpiry是什麼,但它可能看起來像這樣。

代碼:

$now = new DateTime('now'); 
$dateToCompare = new DateTime('2013-04-11');//here is where you put your dateexpire variable 

$difference = $now->format('U') - $dateToCompare->format('U'); 
// or if your date to compare is in the future : 
// $difference = $dateToCompare->format('U') - $now->format('U'); 
$time_diff = gmdate('d',$difference); 

echo $time_diff; 
if($time_diff == 3): 
echo "there is 3 days left"; 
elseif($time_diff < 3): 
echo "less then 3 day there will be 10% reduction"; 
endif; 

代碼摘自:get a time difference between two dates

0

入住這

SELECT p.ProductName, s.Quantity, s.Price, s.DateExpiry FROM seller s, Product p 
WHERE p.PID = s.PID AND Custid = $_SESSION['user'] AND 
(DateExpiry BETWEEN curdate() and curdate() + interval 3 day) ORDER BY DateExpiry