Помощник
|
Не обновляется поле с дробными числами |
lesli007
|
Сообщение
#1
|
||
|
|
||
|
|||
ZiTosS |
12.4.2011, 11:02;
Ответить: ZiTosS
Сообщение
#2
|
|
lesli007, какую размерность поля с типом FLOAT указали:
FLOAT (M, D) M - количество символов для отображения всего числа, включая целую и дробную часть D - размерность лишь дробной части числа Так же, зачем вы числовые данные окружили одинарными кавычками. По сути, вы пытаетесь записать строковое значение в FLOAT, возможно преобразование не точное. Попробуйте убрать кавычки, они там не нужны. |
|
|
lesli007
|
Сообщение
#3
|
|
ZiTosS,вы имеете ввиду длины и значения? пока не указывал. Как правильно указать? мне нужно иметь число с 2 знаками после запятой.
[php]$result2 = mysql_query ("UPDATE users SET add='$add' WHERE login='$login'",$db);[/php] исправил на [php]$result2 = mysql_query ("UPDATE users SET add=$add WHERE login='$login'",$db);[/php] |
|
|
ZiTosS |
12.4.2011, 15:57;
Ответить: ZiTosS
Сообщение
#4
|
|
lesli007,
ZiTosS,вы имеете ввиду длины и значения? Я имел ввиду, когда вы создавали поле в БД, вы помимо типа данных FLOAT должны были указать размерность числа (общее число знаков, дробная часть). Как же вы тогда создали поле типа FLOAT без указания размерности? Пример создания таблицы с полем типа FLOAT: CREATE TABLE `table` ( `id` INT( 11 ) NOT NULL AUTO_INCREMENT , `test` FLOAT( 13, 2 ) NOT NULL , PRIMARY KEY ( `id` ) ); Как видно, указано 13 общих знаков и 2 знака для дробной части. Какие размерности указывать, дело ваше. По коду, что вы привели, разобраться в проблеме нельзя, т.к. не видно остальной обработки, может у вас проблема между приведенными частями. |
|
|
lesli007
|
Сообщение
#5
|
|
код
|
|
|
ZiTosS |
12.4.2011, 19:33;
Ответить: ZiTosS
Сообщение
#6
|
|
lesli007,
1) Недочетов по коду конечно много. Такие, например, как создание переменной $login только при наличии $_POST['login'], а затем её использование (хотя её может и не существовать) 2) слово ADD в MySQL зарезервировано, потому при использовании его в имени столбца нужно заключать его в обратные кавычки, т.е. так: [php]mysql_query ("UPDATE users SET `add`=$add WHERE login='$login'",$db);[/php] Для исключения подобных ошибок в будующем обязательно советую заключать в обратные кавычки имена всех столбцов и таблиц (это по стандартам). А чтобы увидеть ошибку, возникающую в запросе, распечатывайте её с помощью функции mysql_error(); И почитайте: Придирчив ли MySQL к зарезервированным словам? Поблагодарили: (0) |
|
|
lesli007
|
Сообщение
#7
|
|
|
Большое спасибо, ZiTosS! Проблема и правда была в зарезервированных словах. А насчет логина - формой отправки могут воспользоваться только авторизованные пользователи. То есть на кнопку нажмет только человек с логином. Поэтому его не проверяю. Тема закрыта по ключевому вопросу.
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Юридический информационный сайт, вечные статьи, СДЛ, контент обновляется каждый | 4 | seosage_mw | 1585 | 1.7.2015, 13:48 автор: seosage_mw |
|
Готовый контент ( рерайт ) - список постоянно обновляется. | 48 | DarkUnicorn | 38341 | 6.6.2015, 19:17 автор: DarkUnicorn |
|
Значение чекбокса сразу добавляется в тектовое поле | 2 | mixxxxxx | 3171 | 3.11.2014, 11:25 автор: -mixxxxxx- |
|
Парсер + поле для поиска | 1 | BikShop | 1087 | 12.9.2013, 21:44 автор: datacol_mw |
|
Поле ввода пароля... | 20 | denis_mw | 3889 | 17.8.2012, 0:14 автор: HapkomaH |
Текстовая версия | Сейчас: 26.4.2024, 1:26 |