За последние 24 часа нас посетили 63067 программистов и 1741 робот. Сейчас ищут 922 программиста ...

Не UPDATE как никрути....

Тема в разделе "PHP для новичков", создана пользователем KasperZzz, 6 авг 2017.

?

Я кривожоп?

  1. да

    3 голосов
    75,0%
  2. нет

    1 голосов
    25,0%
  1. KasperZzz

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

    С нами с:
    3 янв 2010
    Сообщения:
    46
    Симпатии:
    4
    Код (Text):
    1. include("./connect.php");
    2. $moneyinflreekassa=mysqli_query($bd,"SELECT cash FROM freekassa WHERE userid = ".$steamidlogin." AND order_id = ".$inv_id." ");
    3.  
    4. mysqli_query($bd,"UPDATE freekassa set `status` = `1` WHERE userid = ".$steamidlogin."");
    5.  
    6. mysqli_query($bd,"UPDATE users set `money` = `money` + ".$moneyinflreekassa." WHERE steamid = ".$steamidlogin."");
    Что не так?
    В базе колонки money,cash типа -
    decimal(10,2)
    SELECT выбирается правильно (Ну sql запрос выводит тот, что нужно)
    С подключением все ок.
    Почему не апдейтит ни status, ни money? =(((
    Точней не так, в этом коде есть проблемы????
     
    #1 KasperZzz, 6 авг 2017
    Последнее редактирование: 6 авг 2017
  2. Сереганек

    Сереганек Активный пользователь

    С нами с:
    18 янв 2017
    Сообщения:
    333
    Симпатии:
    27
    Сам только сегодня узнал - символ `(гравис) используется для названий баз, таблиц и полей.
    Я могу ошибаться, поправьте меня если что, но, с гугла я так понял, что при использовании грависа добавляется префикс к тому, что в него обрамляется. Если так, то правильнее будет написать:
    не
    Код (Text):
    1. `status` = `1`
    а
    Код (Text):
    1. `status` = 1
    Ну и какую роль в конце запроса играет это?
    Код (Text):
    1. .""
     
    KasperZzz нравится это.
  3. KasperZzz

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

    С нами с:
    3 янв 2010
    Сообщения:
    46
    Симпатии:
    4
    Я руководствуюсь синтаксисом NOTEPAD++
    Одни ковычки закрывают переменную, вторые закрывают UPDATE
    Если научите меня более лучшему и рабочему варианту - буду признателен) (Я самоучка =) Как могу, как понимаю, так и пишу...)
    Гравис опробую сейчас.Спс за догадку)
     
  4. Сереганек

    Сереганек Активный пользователь

    С нами с:
    18 янв 2017
    Сообщения:
    333
    Симпатии:
    27
    Да, и еще, сохраните ваш запрос в отдельную переменную и напечатайтее ее содержимое. Так сразу все становится видно: что не просуммировалось, где не та кавычка и т.д. Можете выкинуть значения переменных сюда.
     
    KasperZzz нравится это.
  5. Maputo

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

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    KasperZzz нравится это.
  6. KasperZzz

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

    С нами с:
    3 янв 2010
    Сообщения:
    46
    Симпатии:
    4
    Вы правы status стал апдейтится) СПАСИБО!
    Но вот с апдейтом money проблемс)
    Ща переменную moneyinflreekassa попробую записать в файл.(У меня пишется файл на всякий)
     
  7. Maputo

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

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    @KasperZzz, Вы пытаетесь объект mysqli_result запихнуть в строку.
     
    KasperZzz нравится это.
  8. Сереганек

    Сереганек Активный пользователь

    С нами с:
    18 янв 2017
    Сообщения:
    333
    Симпатии:
    27
    зачем в файл? Сразу на экран
     
    KasperZzz нравится это.
  9. Сереганек

    Сереганек Активный пользователь

    С нами с:
    18 янв 2017
    Сообщения:
    333
    Симпатии:
    27
    Ну если нужно всего одно значение, его можно вытащить примерно так:
    PHP:
    1. $result = mysqli_query($bd, $query);      
    2. $row = mysqli_fetch_array($result);
    3. $moneyinflreekassa = $row['login'];
     
    Maputo и KasperZzz нравится это.
  10. KasperZzz

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

    С нами с:
    3 янв 2010
    Сообщения:
    46
    Симпатии:
    4
    У меня такой еще вопрос.
    Если приходит целое число без точки и я пытаюсь его приплюсовать в базу в колонку типа decimal(10,2) оно сложится?
    Или будет ошибка?
    То есть 1.53(число в базе с типом decimal(10,2))+1(Число из переменной)
    Получится в базе 2.53(В базе у меня все через точку.)
    --- Добавлено ---
    А почему login?
    Я даже не знаю как сформулировать мысль)
    Логин это колонка из базы?Которая формируется при запросе $query, правильно?
     
  11. Сереганек

    Сереганек Активный пользователь

    С нами с:
    18 янв 2017
    Сообщения:
    333
    Симпатии:
    27
    А почему бы не развернуть у себя локалхост и поэкспериментировать с реальной базой. Это не сложно, и на все вопросы получите ответы. Вы ведь хотите научиться,а не просто решить текущую проблему?
    Самоучка сначала должен попробовать сам, а уж если совсем никак не идет, тогда спрашивать.
     
    KasperZzz нравится это.
  12. KasperZzz

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

    С нами с:
    3 янв 2010
    Сообщения:
    46
    Симпатии:
    4
    Я для этих целей развернул дебиан+lamp(На соседнем компе =)) Поднял фтп) И решил кучу проблем самостоятельно, я знаю что и эту решу.Вопрос просто во времени.Сегодня я решу или пойду спать.) и сижу эксперементирую)
     
  13. Сереганек

    Сереганек Активный пользователь

    С нами с:
    18 янв 2017
    Сообщения:
    333
    Симпатии:
    27
    Ну, отправьте свой запрос туда и смотрите результат. И не забудьте посмотреть какой результирующий запрос вы отправляете. Попытайтесь понять где находится косяк, а затем уже как его устранить.
     
    KasperZzz нравится это.
  14. Maputo

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

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    В базе будет 2.53 без ошибок
    Вам виднее какое поле должно быть. Я так подозреваю что 'cash'. Вы ведь сказали, что данные нормально выводятся после SELECT. Как Вы их извлекаете из результатов запроса, если способ предложеный @Сереганек Вам не знаком?
     
    KasperZzz нравится это.
  15. KasperZzz

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

    С нами с:
    3 янв 2010
    Сообщения:
    46
    Симпатии:
    4
    Решил проблему!)))
    Действительно не суммирует целое с точкой и целое без точки изменил код вот так
    Код (Text):
    1. mysqli_query($bd,"UPDATE freekassa set `status` = 1 WHERE userid = ".$steamidlogin." AND order_id = ".$inv_id."");
    2.  
    3. mysqli_query($bd,"UPDATE users set `money` = `money` + (".$amount.".00) WHERE steamid = ".$steamidlogin."");
    просто добавил точку с нулями.И все стало апдейтить)


    СПАСИБО ВСЕМ!
     
  16. Сереганек

    Сереганек Активный пользователь

    С нами с:
    18 янв 2017
    Сообщения:
    333
    Симпатии:
    27
    Да, извиняюсь, только увидел. Естественно, там должно быть указано название своей колонки.
     
  17. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    инъекция