PDA

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