View Full Version : سوال: مشکل در آمار بازدید از سایت
abbas3zaar
سه شنبه 03 اردیبهشت 1392, 17:16 عصر
سلام. این کد من خروجی نشون نمیده. دوستان یه نگاه بهش بندازین مشکل از کجاست؟
نام دیتابیس: mycms
نام جدول: counter
نام 4 تا فیلد در داخل جدول: total , today , yesterday , last_visit
مشکل از کجاست؟
<?
//read last_visit from db
$con=mysql_connect('localhost','root','');
if(!$con)
die('error in connect to db');
$select_db=mysql_select_db('mycms');
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 tbl_counter
$query=mysql_query('select * from counter');
$field=mysql_fetch_array($query);
echo ''.$field[total].'';
echo ''.$field[today].'';
echo ''.$field[yesterday].'';
?>
pary_daryayi
سه شنبه 03 اردیبهشت 1392, 20:30 عصر
echo ''.$field['total'].'';
echo ''.$field['today'].'';
echo ''.$field['yesterday'].'';
Tarragon
سه شنبه 03 اردیبهشت 1392, 21:00 عصر
ادامه :
echo $field['total'].$field['today'].$field['yesterday'];
abbas3zaar
پنج شنبه 05 اردیبهشت 1392, 19:55 عصر
echo ''.$field['total'].'';
echo ''.$field['today'].'';
echo ''.$field['yesterday'].'';
من فکر میکنم دستور echo مشکل داره. ولی متاسفانه نمایش نداد
ادامه :
echo $field['total'].$field['today'].$field['yesterday'];
نمایش نداد
abbas3zaar
پنج شنبه 05 اردیبهشت 1392, 20:51 عصر
2 روزه وقتمو گرفته این کد لطفا یکی راهنماییم کنه
MostafaEs3
پنج شنبه 05 اردیبهشت 1392, 21:28 عصر
دوست عزیز کوئری ها ایراد داره . موقع آپدیت شما باید یک ردیف رو با WHERE انتخاب کنید ...! ستون last_visit رو توی دیتابیس بصورت DATETIME انتخاب کنید و برای بروزرسانی تاریخش از تابع ()NOW در کوئری استفاده کنید ...
-------------------------------------------
همینطور سعی کنید کدنویسی تون همیشه منظم (و کامل) باشه . مثال ::
$connection = mysql_connect('localhost','root','');
$select_db=mysql_select_db('mycms');
if ($connection) { die('error in connect to db'); }
if ($select_db) { die('error in select db'); }
$query = mysql_query("SELECT last_visit FROM counter ORDER BY last_visit DESC LIMIT 1");
$field = mysql_fetch_array($query);
if (strtotime($field['last_visit'])== time()) {
$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);
$query=mysql_query('SELECT * FROM counter');
$field=mysql_fetch_array($query);
echo $field['total'] . "\n <br />";
echo $field['today'] . "\n <br />";
echo $field['yesterday'] . "\n <br />";
abbas3zaar
جمعه 06 اردیبهشت 1392, 02:38 صبح
دوست عزیز کوئری ها ایراد داره . موقع آپدیت شما باید یک ردیف رو با WHERE انتخاب کنید ...! ستون last_visit رو توی دیتابیس بصورت DATETIME انتخاب کنید و برای بروزرسانی تاریخش از تابع ()NOW در کوئری استفاده کنید ...
-------------------------------------------
همینطور سعی کنید کدنویسی تون همیشه منظم (و کامل) باشه . مثال ::
$connection = mysql_connect('localhost','root','');
$select_db=mysql_select_db('mycms');
if ($connection) { die('error in connect to db'); }
if ($select_db) { die('error in select db'); }
$query = mysql_query("SELECT last_visit FROM counter ORDER BY last_visit DESC LIMIT 1");
$field = mysql_fetch_array($query);
if (strtotime($field['last_visit'])== time()) {
$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);
$query=mysql_query('SELECT * FROM counter');
$field=mysql_fetch_array($query);
echo $field['total'] . "\n <br />";
echo $field['today'] . "\n <br />";
echo $field['yesterday'] . "\n <br />";
فیلد های دیتابیس از چه نوعی باشند؟
last_visit رو از نوع datetime انتخاب کردم و بقیه رو int ولی بازم نمایش نمیده
اینم عکس:
http://forum.majidonline.com/attachment.php?attachmentid=95505&d=1366930603
http://forum.majidonline.com/attachment.php?attachmentid=95506&d=1366930805
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.