grisha2013
28.07.2013 - 12:10
Столкнулся с непонятным явлением. На локалхосте под Endels все прекрасно работает, функция round возвращает значение с точностью до стоых и эти данные пишу в таблицу как float, чтобы затем при необходимости вывести их из базы на страницу.
Залил файл на хостинг, и вижу, что огругление идет до целого числа, будто я не ставил двойку во втором параметре для round()
Проверил поле в БД, оно действительно float а не int, попробовал как double, безрезультатно.
---
Проверил через echo, оказалось, что функция работает нормально, а вот в базу почему-то заносится как целое число.
Запрос использую обычный, но лакалхосте работает...
$query_rating_team = "UPDATE `data` SET `rating`='$rating' WHERE `id`='$update_id'";
что это может быть, глюк хостера или какие-то особенные настройки?
Хостинг от hostinger.ru
---
блин, даже приведение к типу float переменной $rating не дает результатов.
T1grOK
28.07.2013 - 13:21
float в базе с decimals больше нуля?
_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
grisha2013
28.07.2013 - 13:36
в базе поле float но значение прописывается как int откидывая все что после запятой.
Например, отправляется 168,87, а в базу записывается как 168
T1grOK
28.07.2013 - 14:09
decimals поля float в базе какой? decimals - количество знаков после запятой.
_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
grisha2013
28.07.2013 - 14:38
Не указано.
Или я не там смотрю?
Но другие поля такого-же типа нормально обновляются при редактировании данных в админке.
grisha2013Тип поля в таблице он тебя спрашивает:
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
grisha2013
28.07.2013 - 15:27
Ааа... ))) там float
Переключил в decimal - пишет 10,0
Поменял на 10,2 но в базе все равно прописываются целые числа, 168.00 и т.д.
grisha2013
29.07.2013 - 01:33
В общем, насколько я понял, никто не знает в чем проблема. Думаю дело в хостере...
grisha2013
29.07.2013 - 04:59
Решил проблему так:
Сохраняю в базу результат умноженный на 100. А при выводе на страницу просто делю обратно на 100 и получаю желаемый результат.
Valick
29.07.2013 - 07:30
Цитата |
Сохраняю в базу результат умноженный на 100 |
Это не решение, это называется "костыль" и это прямая наклонная дорога к говнокодерству...
_____________
Стимулятор ~yoomoney - 41001303250491
Игорь_Vasinsky
29.07.2013 - 10:50
1. Перед записью в БД мониторь число
2. Десятичные дроби в php пишутся с плавающей точкой, а не запятой
3. Можешь перед записью указывать тип явным образом (приведение типов)
4. Убедись что колонка в которую производиться запись имеет нужный формат
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
grisha2013
29.07.2013 - 12:07
Да, костыли деревянные...
1. выводил число через echo - оно в нормальном виде, как float, с десятичной точкой.
2. я их и не пишу, само получается в результате расчета.
3. Приводил тип, не помогло. Переменная с нормальным значением силит прямо в sql-запросе, но толку никакого. В этом запросе происходит лажа и он абсолютно ничем не отличается от подобных запросов в других файлах, где данные в базе обновляются с помощью формы редактирования, а не с помощью цикла при обращении к странице. Может быть нельзя выполнять sql-запросы в цикле while и от того глючит? ))
4. как и другие колонки, формат float. Странно что в эти две данные не пишутся как float. Кстати, эти две колонки я создал прямо на сервере, в
phpMyAdmin хостера. Мне кажется проблема на стороне хостинга.
Гость_vladimir
6.08.2013 - 16:04
день добрый у меня не получается установить скрипт на хостинге кто нибуть может сделать это за меня
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.