2011-10-20 9 views
0

私はこれらの列を持つテーブルがある:PHPを使用してデータベースから特定のテーブルを取り出す方法は?

+------------------------------------------------------+ 
| ad_id | ad_title | active | placed_on | duration | 
+------------------------------------------------------+ 
|  1 | First |  1 | 2010-19-10 |  365 | 
+------------------------------------------------------+ 
|  2 | Second |  1 | 2011-18-10 |  365 | 
+------------------------------------------------------+ 

(それはそれはplaced_onの日から365日以内に期限切れのリストのためのテーブルだと私は今月期限切れにリストを表示しますPHP + SQL文を作成したいです例えば、昨年に配置され、今日満了した最初の広告)。このような日に数学を行うにはどうすればいいですか?2010-19-10 + 365?今月期限切れのものを表示します。私の脳が凍りつく:

mysql_query("SELECT `ad_id`, `ad_title`, `active` FROM `listings` WHERE `placed_on` = ``; 

はい、私に助言してください。ありがとうございました!

答えて

1

あなたの日付計算のためのadddateを使用することができます。

select ad_id, ad_title, active 
from listings 
where adddate(placed_on, concat(duration, ' days')) between '2011-10-01' and '2011-10-31' 

おそらくあなたは、PHPから月の最初と最後の日を供給することができます。まあ

0

これはあなたのテーブルではなく、あなたがフロントエンドにあなたのオフセットの日付を生成し、にそれを渡すことができ、で動作するように少しよりよいものにplaced_onを作ることができない場合:

STRCMP() 

http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#function_strcmp

WHERE STRCMP(placed_on,'2010-19-10') = 1 ORDER BY placed_on 

は、2010-19-10より新しいすべてを提供します。

関連する問題