• توجه: در صورتی که از کاربران قدیمی ایران انجمن هستید و امکان ورود به سایت را ندارید، میتوانید با آیدی altin_admin@ در تلگرام تماس حاصل نمایید.

نمایش آمار بازدید روزانه با PHP

Reza

متخصص بخش اسکریپت
اسکریپتی که توی این پست قصد آموزشش رو دارم ، اسکریپت نمایش آمار بازدید امروز ، دیروز و کل بازدید ها هست که توی اکثر سایت ها به اون نیاز هست و مطمئنا به دردتون می خوره.
برای شروع کار یک جدول با نام counter با فیلدهای today,yesterday,total,last_visit بسازید.
view sourceprint?

1.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 انجام میدیم و مقادیر رو چاپ می کنیم .
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.//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.";
 
بالا