За последние 24 часа нас посетили 15733 программиста и 1664 робота. Сейчас ищут 844 программиста ...

Помогите найти ошибку

Тема в разделе "MySQL", создана пользователем ddialer, 15 сен 2009.

  1. ddialer

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

    С нами с:
    15 сен 2009
    Сообщения:
    12
    Симпатии:
    0
    Ребята помогите а то чтото непонятное творится.

    Делаю запрос в базу через php следуюсчего вида:
    UPDATE table_name SET `field1` = `field1` + '1160' , `field2` = `field2` + '1160' , `field3` = `field3` - '1' WHERE `id` = '1' ;

    field1 и field2 = double(132,8)
    field3 = int


    Все проходит без единой ошибки НО к field1 и field2 не приплюсовуются значения но зато field3 без проблем отнимаеться.

    Но если захожу через PHPMyAdmin и запускаю этот запрос то все обрабатываеться на ура. И тут же прикол что в другом php файле почти такойже запрос к этим же полям и все тоже проходит на ура.

    В чем может буть проблема? а то мелочь такая а уже часа 4 немогу разобраться
     
  2. Человек

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

    С нами с:
    24 июл 2008
    Сообщения:
    56
    Симпатии:
    0
    Адрес:
    Донецк
    Покажите пхп код.
     
  3. ddialer

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

    С нами с:
    15 сен 2009
    Сообщения:
    12
    Симпатии:
    0
    $QryUpdate = "UPDATE {{table}} SET ";
    $QryUpdate .= "`price1` = `price1` + '".($price)."', ";
    $QryUpdate .= "`price2` = `price2` + '".($price)."', ";
    $QryUpdate .= "`count` = `count` - '".$count."' ";
    $QryUpdate .= "WHERE ";
    $QryUpdate .= "`id` = '". $id ."' ;";
    doquery( $QryUpdate, "items");
     
  4. ddialer

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

    С нами с:
    15 сен 2009
    Сообщения:
    12
    Симпатии:
    0
    Прикол в том что в php все проходит нормально кроме отнимания, даже когда делаю echo $QryUpdate; и потом запускаю ето через phpMyAdmin то все работает. Пробовал даже Lock Tables делать но через php не паботает
     
  5. Человек

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

    С нами с:
    24 июл 2008
    Сообщения:
    56
    Симпатии:
    0
    Адрес:
    Донецк
    Дык у Вас запятой нет после третей строки
     
  6. ddialer

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

    С нами с:
    15 сен 2009
    Сообщения:
    12
    Симпатии:
    0
    Сорри наверное когда вставлял сюда случайно запятую удалил. в коде есть запятая
     
  7. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    это вы что такое в сотнях гуглов меряете?
     
  8. ddialer

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

    С нами с:
    15 сен 2009
    Сообщения:
    12
    Симпатии:
    0
    онлайн игра. а это обновляет прайсы к некоторым вещам
     
  9. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    извиняюсь за оффтоп, но что эта за вещь с ценой
    Код (Text):
    1. 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999.99999999
    ?
    или я может чего-то не понимаю в записи double(132,8) ((
     
  10. ddialer

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

    С нами с:
    15 сен 2009
    Сообщения:
    12
    Симпатии:
    0
    базу не я делал... за мной только код
     
  11. Lesya

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

    С нами с:
    14 авг 2006
    Сообщения:
    54
    Симпатии:
    0
    Адрес:
    Запорожье
    Одинарные кавычки поменяйте. Вместо ` поставьте '.
     
  12. Frozen

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

    С нами с:
    20 окт 2008
    Сообщения:
    540
    Симпатии:
    0
    Адрес:
    Москва
    откуда такие бабки?© :)

    $QryUpdate = "UPDATE {{table}} SET ";
    $QryUpdate .= "`price1` = `price1` + '".($price)."', ";
    $QryUpdate .= "`price2` = `price2` + '".($price)."', ";
    $QryUpdate .= "`count` = `count` - '".$count."' ";
    $QryUpdate .= "WHERE ";
    $QryUpdate .= "`id` = '". $id ."' ;";

    echo $QryUpdate;

    doquery( $QryUpdate, "items");
     
  13. ddialer

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

    С нами с:
    15 сен 2009
    Сообщения:
    12
    Симпатии:
    0
    пробовал и с такими кавычками, и без, и наоборот их ставил.... все тоже... отнимать отнимает а плюсовать ни в какую
     
  14. Человек

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

    С нами с:
    24 июл 2008
    Сообщения:
    56
    Симпатии:
    0
    Адрес:
    Донецк
    То что выводит echo $QryUpdate; прям совсем совсем хорошо через PHPMyAdmin выполняется? Ну это както совсем странно) А что это за функция doquery() и вторая переменная в ней?

    А мож всетаки в double дело. Попробуйте например прибавить не 1160, а 1160.00000000, или если возможно на время double на инт поменять в одном столбце и глянуть че будет. Или порядок присвоения значений столбцам. ТОесть сначала отнять потом прибавить. Я, черт его, ваще не знаю... а интересно)
     
  15. ddialer

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

    С нами с:
    15 сен 2009
    Сообщения:
    12
    Симпатии:
    0
    Вот это выводит echo:

    UPDATE table_name SET `price1` = `price1` + '1160' , `price2` = `price2` + '1160' , `count` = `count` - '1' WHERE `id` = '1';

    обыкновеная функция которая выполняет запрос к базе, а второй параметр это имя таблицы к которой идет запрос (doquery меняет table_name на этот параметр).
     
  16. ddialer

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

    С нами с:
    15 сен 2009
    Сообщения:
    12
    Симпатии:
    0
    только цто пробовал 1160.00000000 не работает ((
     
  17. ddialer

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

    С нами с:
    15 сен 2009
    Сообщения:
    12
    Симпатии:
    0
    только что пробовал double на int поменять..... все тоже, ни в какую отнимать не хочет
     
  18. ddialer

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

    С нами с:
    15 сен 2009
    Сообщения:
    12
    Симпатии:
    0
    А вот теперь вообще ыже не смешно. Написал простой пхп скрипт только с одним запросом к базе:

    $que = "UPDATE game_planets SET `price1` = `price1` + '840' , `price2` = `price2` + '840' , `count` = `count` - '1' WHERE `id` = '1' ;";
    mysql_query( $que );
    echo $que;

    echo выводит:
    UPDATE game_planets SET `price1` = `price1` + '840' , `price2` = `price2` + '840' , `count` = `count` - '1' WHERE `id` = '1' ;

    Отнимать отнимает а плюсовать не хочет