PDA

View Full Version : ساخت آمار ماهانه



xoogle.ir
شنبه 02 مرداد 1389, 18:41 عصر
سلام دوستان عزیز
میخام به مدیر سایتی که دارم طراحی میکنم یه سری آمار ماهانه بدم میخاستم بازم مثل همیشه راهنماییم کنید :بوس:

مثل میخام مدیر سایت در صفحه آمار اعضای سایت بتونه تعداد اعضای جدید ثبت نام شده در ماههای مختلف رو ببینه :

مثلا اردیبهشت 88 : 23 عضو
خرداد 88 : 37 عضو
تیر 88 : 28 عضو

و چیزهای دیگه این رو هم بگم که تمامی تاریخ ها در دیتابیس من به صورت برچسب زمان دخیره میشن (timestamp)

خیلی خیلی مرسی :چشمک:

rapidpich
یک شنبه 03 مرداد 1389, 15:16 عصر
من که 30 تا query گرفتم چون از اول تو دیتابیس ذخیره نکردم
چون تو ادمینه مهم نیست زیاد برام فوقش روزی یکی دوبار نیگا میکنم.
اما اگه میخای زیاد نیگا کنی! (مثلا بگزاری کنار سایتت) یا باید cache کنی یا باید تو دیتابیست 3 تا فیلد بگزاری روز ، ماه سال که بتونی group by کنی

...
شما میخای ماهانه بگیری من فکر کردم روزانه میخای! برای ماهانه زیاد مشکلی نیست همش 12 تا کوری هستش! مگه اینکه یکی روش بهتری بلد باشه.

mohmadd
یک شنبه 03 مرداد 1389, 17:50 عصر
این کد از ماه جاری تا اخرین ماهی که ثبت نام اون ماه صفره رو بر میگردونه
اگه تاریخ سیستم درست نباشه اشتباه بر میگردونه

$mon=array(1=>31,2=>28,3=>31,4=>30,5=>31,6=>30,7=>31,8=>31,9=>30,10=>31,11=>30,12=>31);
list($amon,$aday)=explode('//',date('m//d',($time=time())));
$time-=$aday*86400;
$i=(int)$amon-1;
$year=date('Y',$time);
echo $year.'<br />';
do{
if(!isset($mr))
{
$query="select count(*) from AAAA where timee > $time";
$time1=$time;
$n=1;
}else
{
$time1=$time-$mon[$i]*86400;//time=6/30/time1=5/31
$query="select count(*) from AAAA where timee > $time1 and timee < $time";
$n=0;
}
$mr=mysql_result(mysql_query($query,$db),0);
if($year!=date('Y',$time))
{echo '<br />'.($year=date('Y',$time)).'<br />';}
echo 'From '.date('Y/m/d',$time1).' TO ';
echo ($n==1)?(date('Y/m/',$time1+86400).$aday):date('Y/m/d',$time1+86400);
echo date(' F',$time1+86400).' Registered User : '.$mr.'<br />';
if($n!=1){$time-=$mon[$i]*86400;$i--;}
$i=($i<1)?$i=12:$i=$i;
}while($mr>0)
نمونه خروجی


2010
From 2010/06/30 TO 2010/07/24 July Registered User : 45
From 2010/05/31 TO 2010/06/01 June Registered User : 49
From 2010/04/30 TO 2010/05/01 May Registered User : 48
From 2010/03/31 TO 2010/04/01 April Registered User : 36
From 2010/02/28 TO 2010/03/01 March Registered User : 46
From 2010/01/31 TO 2010/02/01 February Registered User : 48
From 2009/12/31 TO 2010/01/01 January Registered User : 46

2009
From 2009/11/30 TO 2009/12/01 December Registered User : 157
From 2009/10/31 TO 2009/11/01 November Registered User : 44
From 2009/09/30 TO 2009/10/01 October Registered User : 46
From 2009/08/31 TO 2009/09/01 September Registered User : 43
From 2009/07/31 TO 2009/08/01 August Registered User : 48
From 2009/06/30 TO 2009/07/01 July Registered User : 44
From 2009/05/31 TO 2009/06/01 June Registered User : 0

xoogle.ir
یک شنبه 03 مرداد 1389, 20:28 عصر
باید تو دیتابیست 3 تا فیلد بگزاری روز ، ماه سال که بتونی group by کنی
مگه اینکه یکی روش بهتری بلد باشه.

من میخام با همین یه دونه فیلد timestamp که دارم این کار رو انجام بدم. دنبال همون روش بهتر میگردم.

کسی مقاله خوبی در این مورد نداره آدرس بده من هرچی سرچ میکنم به نتیجه نمیرسم!
اصلا در باره چی باید سرچ کنم ؟؟؟
من اینا رو سرچ کردم نتیجه نداد ؟
monthly statistics using php
monthly report using php

اساتید راهنمایی کنید ....