2012-05-09 15 views
-1

私はこれらのテーブルにユーザー入力(コメント)を保存します。PHP:MY​​SQL履歴機能?

NEWS_COMMENTS 
- id 
- comment 

PRODUCT_COMMENTS 
- id 
- comment 
- product_id 

自分のウェブサイトに履歴機能を追加したいと考えました。好き。

-Someone commented on XX news. 
-Someone commented on YY product. 
-Someone commented on ZZ product. 

あなたは問題に気付きました。私はタイムスタンプや日付を保存しないので、どのコメントが最初に来るのか分からない。ニュースコメントまたは製品コメントのいずれかになります。

MySQLには最後の24時間入力を選択する機能がありますか?たとえば、

NEWS_COMMENTSには過去24時間以内に3つの新しいエントリがあります。 PRODUCT_COMMENTSには過去24時間で5つの新しいエントリがあります。

クエリは、エントリ日付/タイムスタンプでこれらの8つのエントリを選択する必要があります。

現在のページを変更せずにこれを行うことはできますか?あなたはクエリを提供できますか?

+1

So ** do save ** timestamps。 **意味のない**解決策を持つ問題を考えている理由は何ですか? – zerkms

+0

今は構造を変更したくありません。 Mark Byersの答えはそれを解決しました。あなたのコメントをありがとうございました。 :) – Aristona

+0

と彼の答えは、構造を変更することを意味します – zerkms

答えて

3

タイプtimestampとオプションDEFAULT CURRENT_TIMESTAMPの列を追加するだけです。おそらくあなたのコードを変更する必要はありません.MySQLは、行を挿入するときにタイムスタンプが自動的に埋められるようにするために魔法を使います。

その後は、単純なクエリで最後の24時間から行を取得することができます:タイプtimestampとそのオープンでカラムを追加することにより

SELECT col1, col2, ..., coln 
FROM yourtable 
WHERE yourtimestampcol > NOW() - interval 24 hour 
+0

あなたは私よりも速く入力しています:( –

+0

ありがとう、それは私が必要としていたものです:)数分で答えとしてそれを受け入れるつもりです。 – Aristona

1
SELECT * FROM table WHERE timeStamp > NOW() - INTERVAL 24 HOUR 

DEFAULT CURRENT_TIMESTAMPこれはあなたの探しているもので、明らかにテーブル名とタイムスタンプ列を変更する必要があります。

0

"最後の24時間入力を選択する機能はありますか?"

現在のデータベース構造体では、 それはまったく可能ですか?はい。 にはが必要です。imestampsを使用してください。あなたが新しいコメントを求めていないという事実は、あなたが達成しようとしていることをプロセス全体を通して考えていないことを意味しています。

基本的には、データベースにタイムスタンプのタイプとしてcooment_timestampフィールド(または他の名前)を追加し、という句を追加する必要があります。

次に、タイムスタンプ情報を使用して必要なデータを照会することができます(SELECT)。