2011-08-08 12 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

答えて

4

日付をタイプ日付として保存した場合は、mysql built-in time functionsを使用できます。

たとえば、MONTH(日付)でグループ化できます。

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 
; 

それを与えます試着!!!