Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Пару строчек кода на РНР, но счётчик неправильно работает (http://forum.oszone.net/showthread.php?t=297806)

Никита86 02-04-2015 02:26 2490714

Пару строчек кода на РНР, но счётчик неправильно работает
 
Здравствуйте.
Имеется страница mypaints в личном кабинете юзера. На этой странице висит javascript, который аяксом каждые 1,5 сек дёргает файл mypaints_process. На страничке mypaints_process работает функция count_paint(), которая в базе данных MySQL подсчитывает число добавленных юзером в избранное рисунков, при этом старое значение счётчика записывается в переменную сессии и если счётчики различны, обновляем страницу.
Проблема какая-то странная. Я как юзер добавляю пару изображений, вручную проверяю страницу mypaints_process, а оба счётчика равны (равны старшему, то есть новому значению), хотя ведь должны отличаться. При этом в JSON нужный флаг записан не был, а отладочный алерт на яваскрипте также не выводился.
Вроде полторы строки кода, но я уже всю голову сломал, второй день мучаюсь.
Код:

<?PHP
function count_paint(){
//здесь подсчитываем количество добавленных юзером рисунков и записываем результат в переменную $accum. Далее будем сравнивать эти две переменные - $accum и $_SESSION['accum'], чтобы отслеживать новые добавленные юзером рисунки
//Данная функция была проверена, работает она хорошо без ошибок, в том числе и в других скриптах, так что проблема не в ней
}
count_paint();//вызываем её, подсчитывая таким образом значение $accum
 
if (!isset($_SESSION['accum'])) $_SESSION['accum']=0;//если это новая сессия и счётчик-сессия не инициализирован, то инициализируем его нулём
 
if ($_SESSION['accum'] < $accum){//если изменилось (увеличилось) количество выбранных в этой сессии рисунков, которые выбрал пользователь, то
    $flag_paints_refresh='ref';//записываем для json флаг, сообщающий о необходимости перезагрузить страницу.
    echo ("<script type='text/javascript'>window.alert('OK')</script>");//ну или хотя бы просто сообщить что всё работает. НО ЭТОТ БЛОК IF НИКОГДА ВООБЩЕ НЕ ВЫПОЛНЯЕТСЯ, ПОТОМУ ЧТО $_SESSION['accum'] И $accum ВСЕГДА РАВНЫ. КОГДА Я ДОБАВЛЯЮ КАК ЮЗЕР НОВЫЙ РИСУНОК В КОЛЛЕКЦИЮ, $accum ДОЛЖЕН СТАТЬ БОЛЬШЕ ЧЕМ $_SESSION['accum'], НО ОНИ ВСЕГДА РАВНЫ. ПОЧЕМУ?
 $_SESSION['accum']=$accum;//даже если закомментировать эту строку для отладки, всё равно НЕ РАБОТАЕТ
}
?>



Время: 06:12.

Время: 06:12.
© OSzone.net 2001-