[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Залил скрипт на хостинг, round() глючит.
grisha2013
Столкнулся с непонятным явлением. На локалхосте под 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
float в базе с decimals больше нуля?

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
grisha2013
в базе поле float но значение прописывается как int откидывая все что после запятой.
Например, отправляется 168,87, а в базу записывается как 168

T1grOK
decimals поля float в базе какой? decimals - количество знаков после запятой.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
grisha2013
Не указано.

user posted image

user posted image

Или я не там смотрю?

Но другие поля такого-же типа нормально обновляются при редактировании данных в админке. unsure.gif
GET
grisha2013
Тип поля в таблице он тебя спрашивает:

user posted image

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
grisha2013
Ааа... ))) там float
Переключил в decimal - пишет 10,0

Поменял на 10,2 но в базе все равно прописываются целые числа, 168.00 и т.д.
grisha2013
В общем, насколько я понял, никто не знает в чем проблема. Думаю дело в хостере...
grisha2013
Решил проблему так:
Сохраняю в базу результат умноженный на 100. А при выводе на страницу просто делю обратно на 100 и получаю желаемый результат. rolleyes.gif
Valick
Цитата
Сохраняю в базу результат умноженный на 100

Это не решение, это называется "костыль" и это прямая наклонная дорога к говнокодерству...


_____________
Стимулятор ~yoomoney - 41001303250491
Игорь_Vasinsky
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
Да, костыли деревянные... ph34r.gif

1. выводил число через echo - оно в нормальном виде, как float, с десятичной точкой.
2. я их и не пишу, само получается в результате расчета.
3. Приводил тип, не помогло. Переменная с нормальным значением силит прямо в sql-запросе, но толку никакого. В этом запросе происходит лажа и он абсолютно ничем не отличается от подобных запросов в других файлах, где данные в базе обновляются с помощью формы редактирования, а не с помощью цикла при обращении к странице. Может быть нельзя выполнять sql-запросы в цикле while и от того глючит? ))
4. как и другие колонки, формат float. Странно что в эти две данные не пишутся как float. Кстати, эти две колонки я создал прямо на сервере, в phpMyAdmin хостера. Мне кажется проблема на стороне хостинга.
Гость_vladimir
день добрый у меня не получается установить скрипт на хостинге кто нибуть может сделать это за меня unsure.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.