2013-05-13 5 views
-2

У меня есть система голосования. Каждый раз, когда кто-то голосует, он добавляет новую строку в столбец 'Голоса' со всеми подробностями + дата, время.PHP mySQL голосов в этом месяце?

В панели администратора я хочу добавить функцию, которая скажет, сколько голосов мы получили в этом месяце.

Как это сделать?

Может быть, выбрать все строки, дата не ниже CurDate() + 30 дней, и если да, то удалите их все объявления счетчика, сколько строк мы имеем?

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 может легко обрабатывать множество данных. На моей работе у нас есть полмиллиарда строк в некоторых таблицах.

В нижеприведенном запросе просто измените год и месяц на текущий месяц, который вы хотите запросить.

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

Спасибо! вопрос: Как мне конвертировать месяц от имени к int? – user2363542

+0

Вы имеете в виду от 'Май' до' 5'? –

+0

Да. Вот и все . – user2363542

Смежные вопросы