Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Не вводятся дробные числа

Не вводятся дробные числа


     25.10.2013    Общие вопросы по PHP, Ламерские вопросы    2366

вопрос
у меня на сайте стоит сторонний модуль магазина. Сейчас заметил что нельзя при добавлении и редактировании товара ставить цены с копейками. Я их пишу а в базу заносится только целая часть. например пишу 2.50 а в базе а затем и на сайте 2.00. Зато если в базе редактирую то сохраняется и на сайте отображается. Выходит неполадки в форме добавления/редактирования товара.
Подскажите в чём причина
вот стока из php файла добавления товара, при необходимости могу скинуть весь файл, или любой другой.
  <td><input class="edit" type="text" size="10" name="price" id="price"></td>

Ответил: Sander


В обработчике входящих данных замени intval на floatval.
Но не везде, а только для поля price

17 комментариев

vitnet
PHP-developer

vitnet - 25 октября 2013 14:04 -

С этим куском кода вам вряд ли кто поможет ;)

Chessman
Юзер

Chessman - 26 октября 2013 06:42 -

Sander,
    $price = isset($_POST['price']) ? floatval(str_replace(',', '.', $_POST['price'])) : 0;

Chessman
Юзер

Chessman - 26 октября 2013 06:45 -

сейчас так на что заменить?

Chessman
Юзер

Chessman - 26 октября 2013 10:31 -

хелп ми плиз!!!

dj-avtosh
PHP-developer

dj-avtosh - 26 октября 2013 11:09 -

Должно работать. Надо смотреть на месте.

https://elkhan.ru
По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

vitnet
PHP-developer

vitnet - 26 октября 2013 11:13 -

А что мешает попробовать так
$price = floatval($_POST['price']) ? floatval(str_replace(',', '.', $_POST['price'])) : 0;

Chessman
Юзер

Chessman - 26 октября 2013 12:08 -

делал так вроде ничего не менялось, сейчас ещё попробую

Chessman
Юзер

Chessman - 26 октября 2013 12:13 -

та же хрень. пришу 1.55 сохраняет 1

Chessman
Юзер

Chessman - 26 октября 2013 12:19 -

    $price = floatval($_POST['price']);
даже так попробовал
ничего не изменилось

Chessman
Юзер

Chessman - 26 октября 2013 12:28 -

в мускуле стоит тип float(10,2)

Chessman
Юзер

Chessman - 26 октября 2013 12:54 -


dj-avtosh
PHP-developer

dj-avtosh - 26 октября 2013 13:29 -

decimal вернее

https://elkhan.ru
По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

dj-avtosh
PHP-developer

dj-avtosh - 26 октября 2013 13:32 -

Можно так:

$price = ! empty ($_POST['price']) ? ( (float) (str_replace(',', '.', $_POST['price'])) ) : 0;

https://elkhan.ru
По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

Chessman
Юзер

Chessman - 26 октября 2013 20:08 -

попробовал и в мускуле изменить и строку по-другому прописать. ничего не поменялось

Chessman
Юзер

Chessman - 28 октября 2013 07:10 -

что ещё может быть?

Sander
PHP-developer

Sander - 28 октября 2013 10:27 -

Можно попробовать вверху файла прописать локаль:
setlocale(LC_NUMERIC, "C");

SanDev.pro - мой блог.

Telegram: @sandev
Skype: Sander8804

Chessman
Юзер

Chessman - 28 октября 2013 19:28 -

Получилось!!!!!!

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх