Страно ведет себя простая команда MySQL

Leonid

PHP? нет, не слышал...
Страно ведет себя простая команда MySQL

Задача - сделать счетсчик числа просмотров новости. Вроде куда проще -

mysql_query ("update news set prosmotrov = prosmotrov+1 where id = $news_id");

Но почему-о эта команда увеличивает счетчик не на 1, а на 2!

Если написать в Phpmyadmine

update news set prosmotrov = prosmotrov+1 where id = 1824

то все правильно, увеличивается на 1. В PHP-скрипте - на 2.
Скрипт точно вызывается только 1 раз, я проверял. Откуда глюк?

Если написать set prosmotrov = prosmotrov+2, то счетчик увеличится на 4......
 

Leonid

PHP? нет, не слышал...
mod_rewrite используется, но какое он имеет отношение к MySQL?
 

Leonid

PHP? нет, не слышал...
ModRewrite работает так:
Все запросы преодит в любом случае на Index.php
Там подключается парсер, который запрос разбирает.
ЕСли запрос ошибочный, т.е. не соответствует ни одна станица сайта, то выводится страница 404 (своя)
ЕСли все нормально, то выводится соответствующая страница.

Так что 2 раза скрипт не вызывается, я проверял:

echo "prosmotrov+1<Br>";

mysql_query ("update news set prosmotrov = prosmotrov+1 where id = $news_id");

-~{}~ 18.07.06 12:00:

Вообще выключил Мод реврайт, таже фигня....
 

Romantik

TeaM PHPClub
согласись что это не мистика и MySQL работает корректно
favicon.ico отсутствует ИМХО и это производит повторно UPDATE
 

Leonid

PHP? нет, не слышал...
Вообще выключил Мод реврайт, таже фигня....
 

Romantik

TeaM PHPClub
Leonid
сделай в отдельном каталоге, отдельным файлом скрипт состоящий из пары строк:
подключение и выбор базы
и mysql_query ("update news set prosmotrov = prosmotrov+1 where id = $news_id");
и запусти скрипт. Проверь результаты и сообщи
 

Leonid

PHP? нет, не слышал...
уже сделал. Та же фигня.. Точно мистика.

-~{}~ 18.07.06 12:15:

Хотя нет... правильно.
Странно.

-~{}~ 18.07.06 12:18:

Даже не знаю где копать... Страница формируется, выводистя на экран 1 раз. А эта инструкция видимо вызывается 2 раза... Но она вызывается когда формируется страница....
Или даже я ее поставил в самое начало Index.php - все равно увеличивает на 2

-~{}~ 18.07.06 13:16:

Вставил в Index.php

$file = fopen ('test.txt',a);
fwrite ($file,'test ');
fclose ($file);

Слово test вписывается два раза.... Значит Index.php тоже выполняется 2 раза.... Откуда это взялось....?

Копаю дальше...

-~{}~ 18.07.06 13:17:

2 раза всегда, кроме главной страницы...

-~{}~ 18.07.06 13:28:

Нашел, хотя и не понял :)


Заменил в .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) /index.php [L]

на
RewriteEngine On
RewriteCond %{REQUEST_URI} !^(.*)[gif|jpg|css|png|JPG|GIF|PNG|RAR|rar|zip|ZIP|xls|XLS]$
RewriteRule ^(.*)$ index.php
 
Сверху