رفتن به مطلب

کد ساده php برای شمارش بازدید


پست های پیشنهاد شده

سلام.

ما یه سیستم ساده php که با mysql ارتباط داده شده رو داریم که مثل یک cms خیلی ساده عمل میکنه .

و حالا میخوایم یک فیلد جدید در هر جدول برای هر پست در جدول پایگاه داده در نظر بگیریم برای بازدید هر پست.

هر پست مقدار اولیه بازدیدش بعد از ایجاد 0 در نظر گرفته بشه و میخوام وقتی که پست شماره X فراخوانی میشه , اون مقدار 0 برای اون پست , یک واحد افزایش پیدا کنه.

همین... .

لطف می کنین با چند تا کد بنده رو راهنمایی کنید؟ (نمونه کد های ساده میخوام که بزارم تو برنامه خودم)

ممنون.

لینک به ارسال

سلام.

ما یه سیستم ساده php که با mysql ارتباط داده شده رو داریم که مثل یک cms خیلی ساده عمل میکنه .

و حالا میخوایم یک فیلد جدید در هر جدول برای هر پست در جدول پایگاه داده در نظر بگیریم برای بازدید هر پست.

هر پست مقدار اولیه بازدیدش بعد از ایجاد 0 در نظر گرفته بشه و میخوام وقتی که پست شماره X فراخوانی میشه , اون مقدار 0 برای اون پست , یک واحد افزایش پیدا کنه.

همین... .

لطف می کنین با چند تا کد بنده رو راهنمایی کنید؟ (نمونه کد های ساده میخوام که بزارم تو برنامه خودم)

ممنون.

متاسفانه فکر نکنم کار شما با چندتا کد راه بیوفته!

.

شما باید اول یک جدول بسازید با فیلدای مختلف بازدید روز ،آخرین بازدید و....

بعد با کد نویسی php اطلاعات رو از دیتابیس بگیرید و پرینت کنید!

البته با بررسی تاریخ و....

یکم جستجو کنید منابع آموزش باید باشه، سوالی بود در خدمتم.

ویرایش شده توسط alireza.nh
لینک به ارسال

ممنون دوست عزیز بابت پاسخ

ولی الان همه چیز اماده است و کلاً سیستم اوکی شده

فقط من به دو کد نیاز دارم

1- کدی که در انتهای حلقه نمایش پست ها (همون single.php وردپرس!) برای پست X مقدار بازدید رو 1+ کنه.

2- کدی که بصورت تابع عمل کنه و در جدول دیتابیس و در ستون visit مقدار رو بزاره.

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

ویرایش شده توسط مـحـمـد
لینک به ارسال

1)یک جدول با نام counter با فیلدهای today,yesterday,total,last_visit بطور مثال بسازید.

CREATE TABLE IF NOT EXISTS `counter` (
`today` INT(11) NOT NULL,
`yesterday` INT(11) NOT NULL,
`total` varchar(11) NOT NULL,
`last_visit` varchar(20) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

2)سطری بسازید:

INSERT INTO `counter` (`today`, `yesterday`, `total`, `last_visit`) VALUES
('0', '0', '0', '');

3)استفاده کنید:


//read last_visit from db
$con=mysql_connect('localhost','root','');
if(!$con)
die('error in connect to db');
$select_db=mysql_select_db('test');
if(!$select_db)
die('error in select db');
$query=mysql_query('select last_visit from counter');
$field=mysql_fetch_array($query);
//Compare dates
$now=date('Y-m-d');
if($field['last_visit']==$now)
$query='update counter set today=today+1,total=total+1';
else
$query="update counter set yesterday=today,today=1,last_visit='$now',total=total+1";
mysql_query($query);
//display counter
$query=mysql_query('select * from counter');
$field=mysql_fetch_array($query);
echo "

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

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

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

";

ویرایش شده توسط alireza.nh
لینک به ارسال

1)یک جدول با نام counter با فیلدهای today,yesterday,total,last_visit بطور مثال بسازید.

CREATE TABLE IF NOT EXISTS `counter` (
`today` INT(11) NOT NULL,
`yesterday` INT(11) NOT NULL,
`total` varchar(11) NOT NULL,
`last_visit` varchar(20) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

2)سطری بسازید:

INSERT INTO `counter` (`today`, `yesterday`, `total`, `last_visit`) VALUES
('0', '0', '0', '');

3)استفاده کنید:


//read last_visit from db
$con=mysql_connect('localhost','root','');
if(!$con)
die('error in connect to db');
$select_db=mysql_select_db('test');
if(!$select_db)
die('error in select db');
$query=mysql_query('select last_visit from counter');
$field=mysql_fetch_array($query);
//Compare dates
$now=date('Y-m-d');
if($field['last_visit']==$now)
$query='update counter set today=today+1,total=total+1';
else
$query="update counter set yesterday=today,today=1,last_visit='$now',total=total+1";
mysql_query($query);
//display counter
$query=mysql_query('select * from counter');
$field=mysql_fetch_array($query);
echo "

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

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

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

";

ممنونم علیرضا جان،

حالا سوالی که دارم

اینه که اگر من بخوام این بازدید ها رو بصورت نمودار 1 ماهه نمایش بدم باید چکار کنم ؟

مثلا بعضی نمودار ها بصورت فلش هستن .

چطوری این رو هماهنگ کنم با اون فایل فلش نمودار ؟ (30 روزه هم بشه)


<?php update_post_meta($post_id, $meta_key, $meta_value, $prev_value); ?>

ممنونم استاد عزیز

برای وردپرس نیاز نداشتم.

لینک به ارسال

ممنونم علیرضا جان،

حالا سوالی که دارم

اینه که اگر من بخوام این بازدید ها رو بصورت نمودار 1 ماهه نمایش بدم باید چکار کنم ؟

مثلا بعضی نمودار ها بصورت فلش هستن .

چطوری این رو هماهنگ کنم با اون فایل فلش نمودار ؟ (30 روزه هم بشه)

خواهش میکنم.

کار یکم پیچیده تر اینجا.

شما نمودار رو میخواید داخل پنل داشته باشید ؟!

باید این ویژگی جدید رو به cms اضافه کنید که کار سخت و پر دردسری هم هست مسلما!

به نظر من بهتره یک سیستم آمارگیری نصب کنید و به وسیله اون تمام آمار رو ملاحظه کنید،حتی داخل پنل! (با iframe کردن صفحه)

و اینکه از سیستمای موجود و بدون دردسر و زحمتی مانند histats و... استفاده کنید.

----------------------------------------------------------------------------------------------------------------------------------------------

برای رسم نمودار هم اضافه کنم که بهتره از5 html و js استفاده کنید.

http://jsdraw2dx.jsfiction.com/

ویرایش شده توسط alireza.nh
لینک به ارسال

در این جداول شما پیش بینی گزارش یک ماهه نشده برای اینکار اول باید حداقل یک جدول برای مجموع بازدیدهای ماه داشته باشید تا به ازای ورودی هر روز مقدارش بالا بره و بعد از یک ماه یک ردیف برای ماه بعد بسازه

در اینصورت می تونید براش نموداری با تعداد ماه هایی که کد را داشتید بکشید

و اگر می خواهید نموداری رسم کنید برای نمایش آمار هر روز ماه و مقایسه بازدید روزها با هم مسلما باید به تعداد روزهای ماه جدول داشته باشید

لینک به ارسال
  • 3 هفته بعد...

سلام

من از چیزی که گفتید برای سایت خبرگیر استفاده کردم.

کافیه فقط وقتی مطلب باز میشه ، اول مقدار فیلد مورد نظر رو داخل یک متغییر بریزی بعد یک واحد بهش اضافه کنی و در آخر جدول رو آبدیت کنی.

همین ...


<?php
$r=mysql_query("select click from post where id='$p'");
$row=mysql_fetch_array($r);
$click=$row['click'];
$click++;
mysql_query("update post set click='$click' where id='$p'");
?>

$p آی دی مطلب هست ...

ویرایش شده توسط Ghasem Paran
لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...