Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Не вводятся дробные числа

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


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

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

Ответил: Sander


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

Комментарии пользователей (17)

vitnet
218

2171 | 930

vitnet - 25 октября 2013 14:04 - Эксперт

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

Chessman
2

84 | 29

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

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

Chessman
2

84 | 29

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

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

Chessman
2

84 | 29

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

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

dj-avtosh
39

1479 | 390

dj-avtosh - 26 октября 2013 11:09 - шашлычник

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

skype: elhan.isaev

vitnet
218

2171 | 930

vitnet - 26 октября 2013 11:13 - Эксперт

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

Chessman
2

84 | 29

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

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

Chessman
2

84 | 29

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

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

Chessman
2

84 | 29

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

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

Chessman
2

84 | 29

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

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

Chessman
2

84 | 29

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


dj-avtosh
39

1479 | 390

dj-avtosh - 26 октября 2013 13:29 - шашлычник

decimal вернее

skype: elhan.isaev

dj-avtosh
39

1479 | 390

dj-avtosh - 26 октября 2013 13:32 - шашлычник

Можно так:

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

skype: elhan.isaev

Chessman
2

84 | 29

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

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

Chessman
2

84 | 29

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

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

Sander
1125

1637 | 1204

Sander - 28 октября 2013 10:27 - Эксперт

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

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

ICQ: 404-037-556
Skype: Sander8804

Chessman
2

84 | 29

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

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

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

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