رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
شمارش بازدیدکنندگان بر اساس زمان و بدون استفاده از سشن
#1
سلام
می خوام در هر روز تعداد بازدیدکنندگان رو ثبت کنم.
این کوئری من هست :
<?php
        //Increases
       $tm = time();
       $sqlincreases = "UPDATE `counter` SET `cou_site` = `cou_site` + 1 , `cou_time` = $tm WHERE `cou_time` = $tm ";
       mysqli_query($conn, $sqlincreases);
       ?>

ولی به نظرم این کوئری update اشتباهه چون برای هر روز باید رکورد جدیدی ثبت بشه ، این هم جواب نداد :
$sqlincreases = "INSERT INTO `counter` (`cou_site`, `cou_time`) VALUES (`cou_site`+1, $tm) WHERE `cou_time` = $tm ";
؟
تشکر.
پاسخ
تشکر شده توسط:
#2
اولا نیازی به استفاده از ` توی Query ها نیست و الکی خودتو اذیت میکنی.
کلا نیازی به Session نیست ولی بهتره حداقل با Cookie توی مرورگر طرف یک مقدار شناسه برای امروز بگذرای که اگه ۱۰۰ تا صفحه را بازدید کرد الکی نگی ۱۰۰ نفر بازدید کردن و درست تعداد بازدید ها را نشون بدی.
در مورد Query هم بهینه ترین روش اینه که یک رکورد برای هر روز داشته باشی و فقط مقدار تعداد بازدید را بروز کنی.
مشکل شما اینه زمان را داری به timestamp میگیری و کار درستی نیست. شما توی جدولت سه تا ستون داری ، یکی id به int و یکی date به date و یکی count به int.

حالا برای به روز کردن کافیه بنویسی :
$query = sprintf("update counter set c_count = c_count + 1 where c_date = '%s'",date("Y-m-d"));

البته میتونی با gmdate تاریخ را به utc ذخیره کنی یا با توابع timezone بری روی ایران و بعد date بگیری یا کلا timezone را توی cpanel برای php بگذرای روی Asia/Tehran
اگه کسی گفت با ۱۰۰ هزار تومان برات سایت درست میکنه بزن تو گوشش ،‌ شاید تو ندونی برای چی اما اون خوب میدونه !
پاسخ
تشکر شده توسط: پیام حیاتی




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