Код (Text): include("./connect.php"); $moneyinflreekassa=mysqli_query($bd,"SELECT cash FROM freekassa WHERE userid = ".$steamidlogin." AND order_id = ".$inv_id." "); mysqli_query($bd,"UPDATE freekassa set `status` = `1` WHERE userid = ".$steamidlogin.""); mysqli_query($bd,"UPDATE users set `money` = `money` + ".$moneyinflreekassa." WHERE steamid = ".$steamidlogin.""); Что не так? В базе колонки money,cash типа - decimal(10,2) SELECT выбирается правильно (Ну sql запрос выводит тот, что нужно) С подключением все ок. Почему не апдейтит ни status, ни money? =((( Точней не так, в этом коде есть проблемы????
Сам только сегодня узнал - символ `(гравис) используется для названий баз, таблиц и полей. Я могу ошибаться, поправьте меня если что, но, с гугла я так понял, что при использовании грависа добавляется префикс к тому, что в него обрамляется. Если так, то правильнее будет написать: не Код (Text): `status` = `1` а Код (Text): `status` = 1 Ну и какую роль в конце запроса играет это? Код (Text): .""
Я руководствуюсь синтаксисом NOTEPAD++ Одни ковычки закрывают переменную, вторые закрывают UPDATE Если научите меня более лучшему и рабочему варианту - буду признателен) (Я самоучка =) Как могу, как понимаю, так и пишу...) Гравис опробую сейчас.Спс за догадку)
Да, и еще, сохраните ваш запрос в отдельную переменную и напечатайтее ее содержимое. Так сразу все становится видно: что не просуммировалось, где не та кавычка и т.д. Можете выкинуть значения переменных сюда.
Вы правы status стал апдейтится) СПАСИБО! Но вот с апдейтом money проблемс) Ща переменную moneyinflreekassa попробую записать в файл.(У меня пишется файл на всякий)
Ну если нужно всего одно значение, его можно вытащить примерно так: PHP: $result = mysqli_query($bd, $query); $row = mysqli_fetch_array($result); $moneyinflreekassa = $row['login'];
У меня такой еще вопрос. Если приходит целое число без точки и я пытаюсь его приплюсовать в базу в колонку типа decimal(10,2) оно сложится? Или будет ошибка? То есть 1.53(число в базе с типом decimal(10,2))+1(Число из переменной) Получится в базе 2.53(В базе у меня все через точку.) --- Добавлено --- А почему login? Я даже не знаю как сформулировать мысль) Логин это колонка из базы?Которая формируется при запросе $query, правильно?
А почему бы не развернуть у себя локалхост и поэкспериментировать с реальной базой. Это не сложно, и на все вопросы получите ответы. Вы ведь хотите научиться,а не просто решить текущую проблему? Самоучка сначала должен попробовать сам, а уж если совсем никак не идет, тогда спрашивать.
Я для этих целей развернул дебиан+lamp(На соседнем компе =)) Поднял фтп) И решил кучу проблем самостоятельно, я знаю что и эту решу.Вопрос просто во времени.Сегодня я решу или пойду спать.) и сижу эксперементирую)
Ну, отправьте свой запрос туда и смотрите результат. И не забудьте посмотреть какой результирующий запрос вы отправляете. Попытайтесь понять где находится косяк, а затем уже как его устранить.
В базе будет 2.53 без ошибок Вам виднее какое поле должно быть. Я так подозреваю что 'cash'. Вы ведь сказали, что данные нормально выводятся после SELECT. Как Вы их извлекаете из результатов запроса, если способ предложеный @Сереганек Вам не знаком?
Решил проблему!))) Действительно не суммирует целое с точкой и целое без точки изменил код вот так Код (Text): mysqli_query($bd,"UPDATE freekassa set `status` = 1 WHERE userid = ".$steamidlogin." AND order_id = ".$inv_id.""); mysqli_query($bd,"UPDATE users set `money` = `money` + (".$amount.".00) WHERE steamid = ".$steamidlogin.""); просто добавил точку с нулями.И все стало апдейтить) СПАСИБО ВСЕМ!