2012-05-09 2 views
-1

사용자 입력 (의견)을이 테이블에 저장합니다.PHP : MYSQL 기록 기능?

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

그래서 ** save ** timestamps. 아무런 의미가없고 ** 유효한 ** 해결책을 가지고있는 문제를 생각하는 이유는 무엇입니까? – zerkms

+0

지금 구조를 변경하고 싶지 않습니다. Mark Byers의 대답으로 해결되었습니다. 그래도 의견을 보내 주셔서 감사합니다. :) – Aristona

+0

그의 대답은 구조 수정을 의미합니다 – zerkms

답변

3

timestamp 유형과 DEFAULT CURRENT_TIMESTAMP 유형의 열을 추가하기 만하면됩니다. 아마도 코드를 수정하지 않아도됩니다. MySQL은 행을 삽입 할 때 타임 스탬프가 자동으로 채워지는 것을 보장합니다.

그럼 당신은 간단한 쿼리로 최근 24 시간 행을 얻을 수 있습니다 :

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 

을 유형 timestamp 및 오픈에 열을 추가하여 DEFAULT CURRENT_TIMESTAMP 이것은 분명히 테이블 이름과 타임 스탬프 열을 변경하려는 것입니다.

0

"지난 24 시간 입력을 선택하는 기능이 MySQL에 있습니까?"

현재 데이터베이스 구조는 다음과 같습니다. 전혀 가능합니까? 예. 당신 t imestamps을 사용해야합니다. 새로운 코멘트가 없다는 사실은 당신이 달성하고자하는 모든 과정을 생각하지 못했다는 것을 의미합니다.

기본적으로 cooment_timestamp 필드 (또는 다른 이름)를 데이터베이스에 타임 스탬프 유형으로 추가하고 절 (ON UPDATE CURRENT_TIMESTAMP)을 추가해야합니다.

그런 다음 시간 소인 정보를 사용하여 필요한 데이터를 쿼리 할 수 ​​있습니다 (SELECT).