За последние 24 часа нас посетили 58513 программистов и 1780 роботов. Сейчас ищут 903 программиста ...

SQL сложение чисел

Тема в разделе "PHP для новичков", создана пользователем viphost, 15 дек 2012.

  1. viphost

    viphost Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    Всем привет, не пойму почему при выполнении запроса он удваивается
    есть два класса
    Класс выполняет запрос
    Код (Text):
    1.  class SQL {
    2.         static function up($id) {
    3.             $sql = "UPDATE table1 SET summa = summa + 0.100 WHERE id = {$id}" ;
    4.             //..........
    5.         }
    6.     }
    Класс принимает данные и передает в первый класс
    Код (Text):
    1.     class ren {
    2.         function update($id) {
    3.             //принимаю пост JSом
    4.             $post = $_POST['id'] ;
    5.             SQL::up($id) ;
    6.         }
    7.     }
    В итоге получаю, если summa = 0.500
    Обновляет до 0.500 + 0.100 + 0.100 = 0.700
    Второе обновление = 0.900
    Третье 1.100
    Почему так? Нужно чтобы за подход добавляла + 0.100
    То ли я туплю, то ли лыжи не едут
    Получается что за подход, SQL выполняется дважды, в чем может быть проблема?
    Вобщем думаю в js все дело, он два раза запрос делает, поэтому и два раза суммирует
     
  2. jenya777777

    jenya777777 Активный пользователь

    С нами с:
    16 мар 2010
    Сообщения:
    562
    Симпатии:
    0
    А у тебя там header(); случайно не стоит, может после принятия данных, он перезагружает страницу?
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    может срабатывать пре-фетч. если при открытии страницы из IE эффект не проявится — это точно оно ))))
    а бороться с этим надо системно — никогда не изменяй данные по GET-запросу!

    Добавлено спустя 3 минуты 11 секунд:
    больше по теме: гугли слово HTTP_X_MOZ
     
  4. viphost

    viphost Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    я пошел другим путем, так как дважды выполняет, взял и поделил все на два )))
    там короче рейтинг, он передает данные пост в функцию и при это сразу же обновляет рейтинг, я думаю все поэтому, может конечно и ошибаюсь
     
  5. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    В сессию заноси значение при первом выполнении, в последующем чисти и не выполняй ничего далее. А вообще это костыль, такое исправлять изнутри нужно.