PDA

View Full Version : سوال: مشکل در آمار بازدید سایت



reza10wert
شنبه 24 تیر 1391, 12:46 عصر
سلام
وقتی این تابع را فراخوانی میکنم به جای اضافه کردن یک عدد به بازدید کننده ها 2 تا اضافه میکنه
دلیلش چیه ؟

<?php
// total visitor . not real visitor
function total_visitor(){
require_once('../admin/admin_config.php');
connecttodb(); // connect to db_mongeh
$query = "SELECT `count` FROM `tbl_visitor`";
if( $query_run=mysql_query($query) ){
$row=mysql_fetch_assoc($query_run);
$count=$row['count'];
$query2 = "UPDATE `tbl_visitor` SET `count`= $count + 1 ";
mysql_query($query2);
echo $count ;

} else {
die(mysql_error());
}
}
?>

ayub_coder
شنبه 24 تیر 1391, 12:51 عصر
شما به جای این کد

`count`= $count + 1
می تونید بنویسید

`count`= `count` + 1

reza10wert
شنبه 24 تیر 1391, 12:55 عصر
درست نشد
من کدم رو به این صورت اجرا میکنم

<?php require_once('../include/func.php'); total_visitor(); ?>
مشکل از چی هست ؟

pejman_view
شنبه 24 تیر 1391, 13:19 عصر
سلام

مشکل از این است که شما باید دوباره کدتان را بررسی کنید ببینید که آیا جای دیگری هم این total_visitor() رو استفاده کردید یا نه چون می بینم require_once رو تو کدتان قرار دادید یعنی حتماً قبل تر هم require شده ممکن است اونجا هم require شده باز تابع total_visitor رو فراخوندید حالا باید تصمیم بگیرید یکیشون رو حذف کنید

با آروزی موفقیت

reza10wert
شنبه 24 تیر 1391, 13:35 عصر
این از اول صفحه

<?php include'admin_config.php'; ?>
<?php ob_start(); ?>
<?php session_start(); ?>
<?php
if ( !isset($_COOKIE['admin_cookie']) AND empty($_COOKIE['admin_cookie']) ) {
if (!isset($_SESSION['username']) AND empty($_SESSION['username'])
) {
echo '<meta http-equiv="refresh" content="0;url=index.php" />';
}
}
?>
اینم از جایی که فراخواندم

<p class="overview_count" style="color:#F30;""><?php connecttodb(); require_once('../include/func.php'); total_visitor(); ?></p>
اینم func.php

<?php
// total visitor . not real visitor
function total_visitor(){
$query = "SELECT `count` FROM `tbl_visitor`";
if( $query_run=mysql_query($query) ){
$row=mysql_fetch_assoc($query_run);
$count=$row['count'];
$query2 = "UPDATE `tbl_visitor` SET `count`= `count` + 1 ";
mysql_query($query2);
echo $count;

} else {
die(mysql_error());
}
}
?>

ayub_coder
شنبه 24 تیر 1391, 13:46 عصر
echo '<meta http-equiv="refresh" content="0;url=index.php" />';
آیا این کد های در صفحه ایندکس شما قرار دارند؟شما اینجا با این کد صفحه رو رفرش کردید. این یعنی اینکه صفحه دوبار لود میشه.

reza10wert
شنبه 24 تیر 1391, 13:51 عصر
خیلی جالب شد :متعجب::متعجب:
الان توی مرورگر کروم 2 تا 2 تا اضافه میکنه ولی توی مرورگر فایرفاکس درست درست عمل میکنه:متفکر:

دلیلش چیه ؟

tehro0n
شنبه 24 تیر 1391, 16:16 عصر
این از اول صفحه

<?php include'admin_config.php'; ?>
<?php ob_start(); ?>
<?php session_start(); ?>
<?php
if ( !isset($_COOKIE['admin_cookie']) AND empty($_COOKIE['admin_cookie']) ) {
if (!isset($_SESSION['username']) AND empty($_SESSION['username'])
) {
echo '<meta http-equiv="refresh" content="0;url=index.php" />';
}
}
?>
اینم از جایی که فراخواندم

<p class="overview_count" style="color:#F30;""><?php connecttodb(); require_once('../include/func.php'); total_visitor(); ?></p>
اینم func.php

<?php
// total visitor . not real visitor
function total_visitor(){
$query = "SELECT `count` FROM `tbl_visitor`";
if( $query_run=mysql_query($query) ){
$row=mysql_fetch_assoc($query_run);
$count=$row['count'];
$query2 = "UPDATE `tbl_visitor` SET `count`= `count` + 1 ";
mysql_query($query2);
echo $count;

} else {
die(mysql_error());
}
}
?>

اگه می خواهید یک جا به روز کنید که دیگه نیازی به کوئری گرفتن اولی ندارید و همان جا به روز میشه!



$query2 = "UPDATE `tbl_visitor` SET `count`= `count` + 1 ";
mysql_query($query2);

و اینکه در این حالت شما بعد از به روز کردن باید count را بگیرید این نوشتن شما عدد قبل از به روز شدن را نمایش می دهد

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



$query2 = "UPDATE `tbl_visitor` SET `count`= {$count}+1";
mysql_query($query2);


و یک مساله در مورد +1 اینه که ++ سریعتر از +1 انجام میشه

موفق باشید