2009-03-30 2 views
6

내가 온라인 잡지를 실행하고 3 개 메트릭을 추적하는 막 다른 간단한 방법을 싶습니다mySQL 내 사이트에서 매일받은 댓글 수를 나열 하시겠습니까?

매일 남아 있습니다 얼마나 많은 의견
  1. .
  2. 사용자가 제출하는 링크 수.
  3. 매일 얼마나 많은 신입 회원을 얻을 수 있습니까?

이 정보는 모두 내 데이터베이스이며, 어떻게 가져올 지 모릅니다.

나는 약 3500 개의 댓글이 달린 "comments"테이블이 있습니다. 각 주석은 표에서 한 행을 얻습니다. 테이블의 열 중 하나가 "타임 스탬프"입니다.

이 테이블을 선택하고, 타임 스탬프별로 행을 정렬하고, 24 시간 단위로 그룹화 한 다음 각 그룹의 행 수를 계산하는 쿼리가 있다고 가정합니다. 일.

해당 쿼리의 모양은 무엇입니까? 첫 번째 작업을한다면 다른 것들을 알아낼 수있을 것 같습니다.

+0

타임 스탬프 열은 어떤 유형입니까? 그것은 실제 TIMESTAMP, 일종의 DATE/DATETIME입니까? 아니면 유닉스 타임 스탬프를 저장하고있는 INT입니까? – Powerlord

+0

이것은 Unix 타임 스탬프를 포함하는 int (11)입니다. – FGM

답변

7

이 조각은 테마 테이블에 결과를 표시합니다 날짜.

0

날짜 형식을 지정하려면 date_format() 함수를 사용하십시오. DATE()가 ASCII를 기대하는 반면, comments.timestamp는 UNIX_TIMESTAMP 형식으로되어 있기 때문에 작동하지 않습니다 DATE (타임 스탬프)를 사용하여

$sq = 'SELECT COUNT(*) cnt, DATE(FROM_UNIXTIME(timestamp)) day ' 
    . 'FROM {comments} c ' 
    . 'GROUP BY 2 ' 
    . 'ORDER BY 2 DESC'; 
$q = db_query($sq); 
$stats = array(); 
while ($o = db_fetch_object($q)) { 
    $stats[$o->day] = array($o->day, $o->cnt); 
} 
return theme('table', NULL, $stats)); 

:

select count(id) as commentCount, date_format(dateColumn, '%Y-%m-%d') as commentDate 
from yourTable 
group by commentDate 
관련 문제