PHP: $result = mysql_query("SELECT view FROM data WHERE id='$id'", $db); $myrow = mysql_fetch_array($result); $new_view = $myrow["view"] + 1; mysql_query("UPDATE data SET view='$new_view' WHERE id='$id'", $dbconnect); При обновлении страницы в Opera и IE значение view увеличивается на 1, при обновлении страницы в mozilla и chrome на 2. Причем если написать: $new_view = $myrow["view"] + 3; то значение увеличивается в первом случае на 3, во втором на 6. Как быть?
Спорим, это можно переписать в один запрос? PHP: <?php $q = 'UPDATE table_name SET count_field = count_field+1 WHERE id = '.$id;
Написал более точный пример кода. В базе данных db_name таблица table, в которой поля id и view. url: _site.ru/index.php?id=1 И как ни странно, он работает корректно: PHP: <?php $db = mysql_connect ("host","user","password"); mysql_select_db ("db_name", $db); $id = $_GET['id']; $result = mysql_query("SELECT view FROM table WHERE id='$id'", $db); $myrow = mysql_fetch_array($result); mysql_query("UPDATE table SET view=view+1 WHERE id='$id' LIMIT 1", $db); echo $myrow["view"]; ?>
Методом исключения проблема была решена. Я удалил код поиска по сайту от Гугла и все встало на свои места. Сайт работал в тестовом режиме на локалке, поэтому чтобы ноут не просил подключение к интернету я поудалял значения в коде поиска и образовался пустой [js]<script type="text/javascript" src=""></script>[/js] вот он и мешал. Как сделать, чтобы "апдейт" происходил не при каждом обращении к страничке, а только 1 раз в сутки для конкретного IP, к примеру. Так можно сделать свой счетчик посещений.