データベースの結果に基づいてウェブサイトの記事の統計を作成するタスクがあります。毎月追加された記事の量を計算し、これらの結果をJavaScript統計関数に渡す必要があります。
私が最初に行っているのは、記事が追加された期間全体を見つけることです。
SELECT MIN(date) as startdate FROM articles LIMIT 1
SELECT MAX(date) as enddate FROM articles LIMIT 1
$startDate
これで、で始まり、で終わる期間があります$endDate
。これらの変数は、データベースにあるのでUNIXタイムスタンプです。データベースの列date
もUNIXタイムスタンプです。
次に、次のようなforeachループでクエリを実行して、毎月追加された記事の量を確認する必要があります。
SELECT COUNT(id) as total FROM articles
WHERE date > ".$startMonth." AND date < ".$endMonth
しかし、それを行うには、その期間の毎月の最初と最後の日を見つける必要があります。そして、私はこの瞬間に立ち往生しました。では、これらの最初と最後の日を配列として見つける方法を教えてください。が等しくstrtotime("+1 month",$date)
なるまで、whileループのようなものを作成する必要があると思います。前もって感謝します。$startDate
$endDate
更新 データベースには合計46の記事があります。私が喜んで持っているのは、月ごとにグループ化された結果です。
SELECT date, COUNT(id) as total FROM `articles`
WHERE `author`=$author
GROUP BY date_format(date, '%Y-%m')
結果:月の投稿11-2010 13 12-2010 33