Ben veritabanı sonuçlarına göre web sitesi makale istatistikleri yapmak için bir görev var. Ben makalelerin miktarı aylık eklendi hesaplamak ve JavaScript istatistikler işlevine bu sonuçları geçmek gerekir.
Ben ne yapıyorum İlk yazıları eklenmiştir edildiği bütün dönemi bulmak:
SELECT MIN(date) as startdate FROM articles LIMIT 1
SELECT MAX(date) as enddate FROM articles LIMIT 1
Şimdi $startDate
ile başlar ve $endDate
ile biter dönemi var. Onlar veritabanında olduğu gibi bu değişkenler unix zaman damgaları vardır. Veritabanındaki sütun date
de Unix zaman damgası.
Sonra, ben makalelerin miktarı gibi foreach döngüsü içinde bir sorgu yaparken her ay eklenmiştir bulmak gerekir:
SELECT COUNT(id) as total FROM articles
WHERE date > ".$startMonth." AND date < ".$endMonth
Ama döneminde her ayın ilk ve son gün bulmak gerektiğini yapmak için. Ve ben şu anda şaşırıp kalmış. Yani dizideki gibi bu ilk ve son gün bulmak için nasıl bana tavsiye lütfen yapabilir lütfen. I $startDate
eşittir $endDate
kadar bir süre döngü strtotime("+1 month",$date)
gibi bir şey yapmak gerektiğini düşünüyorum. Şimdiden teşekkürler.
Upd. veritabanında toplam 46 makaleleri vardır. Ben sonuçları aya göre gruplandırılmış olması razıyım Ne:
SELECT date, COUNT(id) as total FROM `articles`
WHERE `author`=$author
GROUP BY date_format(date, '%Y-%m')
results: month posts 11-2010 13 12-2010 33