2013-05-13 1 views
-2

투표 시스템이 있습니다. 사람이 투표 할 때마다 'Votes'이라는 열에 새 행을 추가하고 모든 세부 정보 + 날짜, 시간을 추가합니다.이번 달에 PHP mySQL이 투표합니까?

관리 패널에 이번 달에 얻은 득표 수를 말하는 기능을 추가하고 싶습니다.

어떻게하면됩니까?

아마 날짜() + 30 일 CURDATE보다 낮은 모든 행을 선택하고 네 경우 모두 광고 우리가 얼마나 많은 행 개수 삭제 하시겠습니까?

public function votesThisMonth() 
    { 
     $this->query = $this->pdo->prepare("SELECT * FROM votes WHERE date<DATE_SUB(curdate(), INTERVAL 30 DAY)"); 
     $result = $this->query->execute(); 

     return $result; 
    } 
+0

네, 그 방법입니다. 삭제 제외. 왜 지울거야? –

+0

그런 식으로 모든 레코드가 여전히 db 광고에 저장 될 것입니다. 아니면 상관 없습니까? – user2363542

+0

몇 마디입니까? 스토리지 공간이 문제가되기 전에 수백만 달러를 유지해야합니다. – andrewsi

답변

2

아무것도 삭제할 필요가 없습니다. MySQL은 많은 양의 데이터를 아주 쉽게 처리 할 수 ​​있습니다. 제 직업에서는 어떤 테이블에 5 억 개의 행이 있습니다.

아래 쿼리에서 년과 월을 쿼리 할 현재 월으로 변경하십시오.

SELECT 
    COUNT(*) AS num_votes 
FROM 
    tablename 
WHERE 
    YEAR(datecol) = YEAR(CURRENT_DATE) 
AND MONTH(datecol) = MONTH(CURRENT_DATE) 
+0

감사! 질문 : 어떻게 달을 이름에서 정수로 변환합니까? – user2363542

+0

'5 월'에서 '5'까지를 의미합니까? –

+0

예. 그게 전부 야. – user2363542

관련 문제