2011-08-08 60 views
2

我需要行计数的一点帮助。我设法添加今天和总成员数(行)。我想在本周和本月计算。任何人都可以指出我该怎么做?谢谢。行计数帮助

$result = mysql_query("SELECT * FROM members"); 
$num_rows = mysql_num_rows($result); 

echo "$num_rows Members\n"; 

$utoday = date("j. n. Y"); 

$today = mysql_query("SELECT * FROM mambers WHERE date='$utoday' "); 
$num_today = mysql_num_rows($today); 

echo "$num_today Members\n"; 
+0

你用什么数据类型来存储日期? – Arjan

+0

在数据库中“varchar” – maxlk

+0

您需要将其更改为DATE或DATETIME。它们是为日期和日期处理而设计的,varchar不是。你可以找到具有特定日期的记录,但是没有办法,你可以对日期范围做任何事情。你想使用范围。 – Arjan

回答

1

如果要算上本周从最近的星期一开始:如果你要计算这个月从第1个查询开始

SELECT COUNT(1) WeekCount 
FROM members A, 
(
    SELECT 
     (MondayDate + INTERVAL 0 SECOND) PastMonday, 
     ((MondayDate + INTERVAL 7 DAY) + INTERVAL 0 SECOND) NextMonday 
    FROM 
     (SELECT DATE(NOW() - INTERVAL WEEKDAY(NOW()) DAY) MondayDate) AA 
) B 
WHERE date >= PastMonday AND date < NextMonday 
; 

这样的:

SELECT COUNT(1) MonthCount 
FROM members A, 
(
    SELECT FirstOfThisMonth, 
    ((FirstOfThisMonth + INTERVAL 32 DAY) - INTERVAL (DAY(FirstOfThisMonth + INTERVAL 32 DAY)-1) DAY) FirstOfNextMonth 
    FROM 
    (
     SELECT (DATE(NOW() - INTERVAL (DAY(NOW())-1) DAY) + INTERVAL 0 SECOND) FirstOfThisMonth 
    ) AA 
) B 
WHERE date >= FirstOfThisMonth AND date < FirstOfNextMonth 
; 

给它一试!