2010-10-08 25 views
0
$today = time() - (3600*24); 
$Yday = time() - (3600*48); 

$getMsgsToday = mysql_query("SELECT * FROM users_msgs WHERE uID = '$USER' AND date > $today"); 
$countToday = mysql_num_rows($getMsgsToday); 

$getMsgsYday = mysql_query("SELECT * FROM users_msgs WHERE uID = '$USER' AND date > $Yday"); 
$countYday = mysql_num_rows($getMsgsYday); 

這是我最近24小時和48小時(昨天)顯示消息的代碼。PHP:僅在「今日」中顯示,不在「昨日」中

我得到了兩個查詢(昨天和今天)。

現在如果你在24小時內有東西,它也會在昨天while()中顯示。

我只希望顯示昨天的消息,我的意思是在今天的24小時之前的24小時。

我該怎麼做,所以我沒有得到這些重複?

+0

是您的約會日期或日期時間? – JoshD 2010-10-08 19:52:06

+0

unix timestamp .. – Johnson 2010-10-08 19:54:28

回答

1

使用BETWEEN … AND …只選擇那些48小時,24小時之間前:

"SELECT * FROM users_msgs WHERE uID = '$USER' AND date BETWEEN $Yday AND $today" 
+0

你也可以使用NOW()sql函數獲取當前日期,而不是在php中手動計算它嗎? – JoshD 2010-10-08 19:54:53

+0

['NOW'函數](http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_now)沒有返回Unix時間戳,而是MySQL中的時間時間格式。但是也可以使用['UNIX_TIMESTAMP'函數](http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp)。 – Gumbo 2010-10-08 19:58:17

+0

是的你可以,但有人告訴我有關它的一些故事,所以我寧願不要,以防萬一...無論如何,好的解決方案是濃湯,最後一個問題,我應該怎麼做,如果我只想顯示所有信息後48小時? – Johnson 2010-10-08 19:58:46

0
$getMsgsYday = mysql_query("SELECT * FROM users_msgs WHERE uID = '$USER' AND date BETWEEN $Yday and $today");