2013-05-13 70 views
-2

所以我有一个投票系统。 每次有人投票时,它会在列中添加一个新行,名为'Votes',其中包含所有详细信息+日期和时间。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

是的,就是这样。除了删除。你为什么要删除? – 2013-05-13 19:23:02

+0

那样,所有记录仍然会在数据库广告中导致大量的存储空间使用,我认为呢?或者没关系? – user2363542 2013-05-13 19:23:37

+0

你在说多少张选票?至少在你担心存储空间成为问题之前,你至少需要数百万美元。 – andrewsi 2013-05-13 19:25:10

回答

2

无需删除任何东西。 MySQL可以很容易地处理大量的数据。在我的工作中,我们在一些表格中有五亿行。

在下面的查询中,将年份和月份更改为您要查询的当前月份。

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

谢谢!问题:如何将月份从名称转换为int? – user2363542 2013-05-13 19:31:08

+0

你的意思是从“五月”到“五”吗? – 2013-05-13 19:32:32

+0

是的。而已 。 – user2363542 2013-05-13 19:33:09