X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Не обновляется поле с дробными числами
lesli007
lesli007
Topic Starter сообщение 12.4.2011, 0:41; Ответить: lesli007
Сообщение #1


Код:
[php]$result4 = mysql_query ("SELECT * FROM users WHERE login ='$login'",$db);
if (mysql_num_rows($result4) > 0)
{
$myrow4 = mysql_fetch_array($result4);
$add=100-$add;
$add = 1/$add;
$delta = 0.0000001;
$add = round($add + $delta, 2);
$add=$myrow4["add"]+$add;
echo $add;
}
else
{echo "неудачная надбавка";}[/php]
Запрос к базе
[php]$result2 = mysql_query ("UPDATE users SET add='$add' WHERE login='$login'",$db);[/php]
По расчетам видно что я получаю число с плавающей точкой. На уровне echo я его получаю точно как надо. Но поле не обновляется. Тип данных задал FLOAT. Пробовал и децимел и дабл. Не знаю что еще нужно чтобы вы смогли мне помочь - если что скажите что еще сказать по настройкам и коду я скажу.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 12.4.2011, 11:02; Ответить: ZiTosS
Сообщение #2


lesli007, какую размерность поля с типом FLOAT указали:
FLOAT (M, D)

M - количество символов для отображения всего числа, включая целую и дробную часть
D - размерность лишь дробной части числа

Так же, зачем вы числовые данные окружили одинарными кавычками. По сути, вы пытаетесь записать строковое значение в FLOAT, возможно преобразование не точное. Попробуйте убрать кавычки, они там не нужны.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
lesli007
lesli007
Topic Starter сообщение 12.4.2011, 14:34; Ответить: 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
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
lesli007
Topic Starter сообщение 12.4.2011, 18:40; Ответить: lesli007
Сообщение #5


код
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
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
lesli007
Topic Starter сообщение 13.4.2011, 13:57; Ответить: lesli007
Сообщение #7


Большое спасибо, ZiTosS! Проблема и правда была в зарезервированных словах. А насчет логина - формой отправки могут воспользоваться только авторизованные пользователи. То есть на кнопку нажмет только человек с логином. Поэтому его не проверяю. Тема закрыта по ключевому вопросу.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Юридический информационный сайт, вечные статьи, СДЛ, контент обновляется каждый
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


 



RSS Текстовая версия Сейчас: 26.4.2024, 1:26
Дизайн