Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: счетчик посещений страниц
 
 автор: shakopee   (15.08.2012 в 04:12)   письмо автору
 
 

Добрый день!
Счетчик посещений не правильно считает.

переменной view в бд присвоил значение 0 по умолчанию
  `view` int(5) NOT NULL DEFAULT '0',


далее в коде увеличиваем счетчик посещений на 1
$new_view = $myrow3[view] + 1;


обновляем view в базе данных
$update = mysql_query("UPDATE ccuzs set view='$new_view' where id='id'", $db);


выводим счетчик
<?php echo $new_view?>


при первом посещении счетчик показывает 1, при обновлении уже 3, а не 2. Далее работает правильно: 4, 5, 6, 7

Счетчик пропускает цифру 3.

Где ошибка?

  Ответить  
 
 автор: cheops   (15.08.2012 в 06:56)   письмо автору
 
   для: shakopee   (15.08.2012 в 04:12)
 

Довольно странно... попробуйте увеличивать значение счетчика прямо в SQL-запросе
UPDATE ccuzs
set view = view + 1
where id='id'
Ситуация сохраняется?

  Ответить  
 
 автор: shakopee   (16.08.2012 в 02:54)   письмо автору
 
   для: cheops   (15.08.2012 в 06:56)
 

ничего не поменялось.

для проверки выхожу

старое значение view и $new_view
<?php echo $myrow3['view'?><br> 

<?php echo $new_view ?>


при первоначальной загрузки страницы
показатели такие: 0 и 1
перезагружаю - показатели уже 2 и 3

привожу еще раз код
<?php
$result3 
mysql_query("SELECT * from ccuzs WHERE id_ccuz='" mysql_real_escape_string($id_ccuz) . "'"$db);
if (!
$result3)
{
echo 
"<p>Запрос на выборку данных из базы не прошел. </p>";
exit (
mysql_error()); 
}

if (
mysql_num_rows($result3) > 0)

{
$myrow3 mysql_fetch_array($result3);
$new_view $myrow3[view] + 1;
$update mysql_query("UPDATE ccuzs set view = view + 1 where id_ccuz='" mysql_real_escape_string($id_ccuz) . "'"$db);
}
else 
{
echo 
"<p>Информация не может быть извлечена.</p>";
exit ();
}
?>

  Ответить  
 
 автор: btr   (16.08.2012 в 15:44)   письмо автору
 
   для: shakopee   (16.08.2012 в 02:54)
 

а не ндо ли после данной конструкции поставить точку с запятой? :\
if (!$result3)
{
echo "<p>Запрос на выборку данных из базы не прошел. </p>";
exit (mysql_error()); 
}

  Ответить  
 
 автор: Igorek   (16.08.2012 в 15:34)   письмо автору
 
   для: shakopee   (15.08.2012 в 04:12)
 

странно, что только при первом посещении...
у меня была подобная ситуация, когда счетчик увеличивался на 2 каждый раз. проблема была в том, что браузер обращался к фавикону, которого не существовало и попадал на этот скрипт, и в "теневом" режиме обновлял счетчик.
может и у вас что-то подобное?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования