هاست لینوکس

آخرین بسته‌ی MyBB: نسخه‌ی 1.8.27 MyBB منتشر شد


امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
آمار روزانه با PHP
#1
آمار بازدید امروز ، دیروز و کل بازدید ها هست که توی اکثر بچه ها به اون نیازمند هستند و مطمئنا به دردتون می خوره.
برای شروع کار یک جدول با نام counter با فیلدهای today,yesterday,total,last_visit درست کنید .

[payment=365] CREATE TABLE IF NOT EXISTS `counter` (

2 `today` INT(11) NOT NULL,

3 `yesterday` INT(11) NOT NULL,

4 `total` varchar(11) NOT NULL,

5 `last_visit` varchar(20) NOT NULL

6 ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
و یک سطر جدید درج کنید .

view sourceprint?
1 INSERT INTO `counter` (`today`, `yesterday`, `total`, `last_visit`) VALUES

2 ('0', '0', '0', '');
نحوه کار به این شکل هست که ابتدا مقدار فیلد last_visit رو که مربوط به تاریخ آخرین بازدید انجام شده از سایت هست رو از دیتابیس می خونیم ، بعد با استفاده از تابع ()date تاریخ فعلی رو بدست میاریم و با مقدار موجود در last_visit مقایسه می کنیم ، در صورتی که این دو تاریخ باهم برابر باشند مقدار فیلد today رو یکی افزایش میدیم در غیر این صورت متوجه میشیم که آخرین بازدید در روز دیگه ای انجام شده که ما اونو روز قبل در نظر می گیریم و مقدار فیلد yseterday رو برابر با today قرار میدیم و مقدار فیلد today رو مساوی با یک می زاریم و تاریخ آخرین بازید رو هم به روز می کنیم .
توجه داشته باشید که در هر دو حالتی که پیش میاد مقدار فیلد total رو هم یکی افزایش میدیم .
در مرحله آخر هم مقادیر موجود در دیتابیس رو select و چاپ می کنیم .

۱ – خواندن اطلاعات از دیتابیس

view sourceprint?
1 $con=mysql_connect('localhost','root','');

2 if(!$con)

3 die('error in connect to db');

4 $select_db=mysql_select_db('test');

5 if(!$select_db)

6 die('error in select db');

7 $query=mysql_query('select last_visit from counter');

8 $field=mysql_fetch_array($query);
برای آشنایی بیشتر با توابع دیتابیس و کار با اون می تونید این و این پست رو بخونید .


۲ – مقایسه تاریخ آخرین بازدید با تاریخ جاری

view sourceprint?
1 $now=date('Y-m-d');

2 if($field['last_visit']==$now)

3 $query='update counter set today=today+1,total=total+1';

4 else

5 $query="update counter set yesterday=today,today=1,last_visit='$now',total=total+1";

6 mysql_query($query);
3 – نمایش آمار
برای نمایش مقادیر ذخیره شده هم دوباره از دیتابیس یه select انجام میدیم و مقادیر رو چاپ می کنیم .

کد php:
view sourceprint?
01 $query=mysql_query('select * from counter');  

02 $field=mysql_fetch_array($query);  

03 echo "  

04    

05     بازدیدهای امروز : 
$field[today]   

06    

07     بازدیدهای دیروز : 
$field[yesterday]   

08    

09     کل بازدیدها : 
$field[total]  

10    

11 "

view sourceprint?01 $query=mysql_query('select * from counter');

02 $field=mysql_fetch_array($query);

03 echo "

04

05 بازدیدهای امروز : $field[today]

06

07 بازدیدهای دیروز : $field[yesterday]

08

09 کل بازدیدها : $field[total]

10

11 ";
[/php]
کد کامل اسکریپت :

کد php:
//read last_visit from db  

02 $con=mysql_connect('localhost','root','');  

03 if(!$con)  

04     die('error in connect to db');  

05 $select_db=mysql_select_db('test');  

06 if(!$select_db)  

07     die('error in select db');  

08 
$query=mysql_query('select last_visit from counter');  

09 
$field=mysql_fetch_array($query);  

10 //Compare dates  

11 $now=date('Y-m-d');  

12 if($field['last_visit']==$now)  

13     $query='update counter set today=today+1,total=total+1';  

14 else 

15     $query="update counter set yesterday=today,today=1,last_visit='$now',total=total+1";  

16 mysql_query($query);  

17 //display counter  

18 $query=mysql_query('select * from counter');  

19 $field=mysql_fetch_array($query);  

20 echo "  

21    

22     بازدیدهای امروز : 
$field[today]   

23    

24     بازدیدهای دیروز : 
$field[yesterday]   

25    

26     کل بازدیدها : 
$field[total]  

27    

28 "

پاسخ
 سپاس شده توسطرضا (۱۳۹۰/۱۰/۱۸، ۰۹:۱۴:۰۲ صبح) ، Cancer9003 (۱۳۹۰/۱۰/۱۸، ۱۳:۲۱:۲۶ عصر) ، geo (۱۳۹۰/۱۰/۲۳، ۱۵:۰۳:۳۴ عصر) ، Mohammad.T (۱۳۹۰/۱۰/۲۳، ۱۵:۰۸:۱۲ عصر) ، kabus (۱۳۹۱/۲/۳۰، ۱۵:۳۵:۴۰ عصر)
#2
رایگان شد Heart
پاسخ
 سپاس شده توسطgeo (۱۳۹۰/۱۰/۲۳، ۱۵:۰۳:۳۹ عصر) ، Mohammad.T (۱۳۹۰/۱۰/۲۳، ۱۵:۰۸:۱۰ عصر) ، tofighi (۱۳۹۰/۱۱/۱۴، ۰۶:۳۳:۳۲ صبح) ، kabus (۱۳۹۱/۲/۳۰، ۱۵:۳۵:۴۵ عصر)
#3
سلام

آیا برای این آمار پلاگین آماده ای وجود نداره ؟

(یا مورد مشابه)

Heart
پاسخ
 سپاس شده توسطشماره مجازی (۱۴۰۱/۸/۲۶، ۰۱:۵۷:۰۵ صبح) ، گراف مسنجر (۱۴۰۱/۱۰/۳، ۰۴:۱۸:۴۸ صبح)


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان