Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вывод не целых чисел

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
pantela
Отправлено: 30 Июня, 2016 - 19:05:09
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




В БД имею записи, где значение у поля amount виде:
48.35
29
120
4.5
17.9


т.е. некоторые числа целые некоторые нет.

Делаю ORM запрос виде:
PHP:
скопировать код в буфер обмена
  1. $res = DB::select()
  2.         ->from($this->_table_name);
  3.  
  4. (isset($filter['min_price']) && $filter['min_price'] != '') ? $res = $res->and_where('amount','>=',$filter['min_price']) : '';
  5. (isset($filter['max_price']) && $filter['max_price'] != '') ? $res = $res->and_where('amount','<=',$filter['max_price']) : '';
  6.  
  7. $res = $res->order_by('id', 'DESC');
  8. $res = $res->execute()->as_array();


CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `booking` WHERE `amount` >= '0' AND `amount` <= '3000' ORDER BY `id` DESC


Но результат конечно выводит только целые числа.

Посмотрел что-то о DECIMAL, но особо не понял как использовать, тем более в ORM
 
 Top
T1grOK
Отправлено: 30 Июня, 2016 - 20:20:09
Post Id



Частый гость


Покинул форум
Сообщений всего: 129
Дата рег-ции: Июнь 2013  


Помог: 7 раз(а)




Запрос вполне валидный, причина в чем то другом.


-----
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
 
 Top
pantela
Отправлено: 30 Июня, 2016 - 20:22:44
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




Вроде этот вопрос и другие поднимали... Растерялся
напр. http://stackoverflow[dot]com/questio[dot][dot][dot]a-float-in-mysql
 
 Top
IllusionMH
Отправлено: 30 Июня, 2016 - 20:57:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




pantela, а какой вообще тип поля в БД? Не пробовали в запросах числа в кавычки не брать?
 
 Top
T1grOK
Отправлено: 30 Июня, 2016 - 21:20:22
Post Id



Частый гость


Покинул форум
Сообщений всего: 129
Дата рег-ции: Июнь 2013  


Помог: 7 раз(а)




pantela пишет:
Вроде этот вопрос и другие поднимали...

Совсем другой случай.


-----
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
 
 Top
pantela
Отправлено: 01 Июля, 2016 - 14:20:50
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




IllusionMH пишет:
pantela, а какой вообще тип поля в БД? Не пробовали в запросах числа в кавычки не брать?
Тип поля "varchar(5)"

Причина и правка в ковичках была...
Сделал так, вроде работает и верно:
PHP:
скопировать код в буфер обмена
  1. $res = $res->and_where('amount','>=',DB::expr($filter['min_price']));
  2. $res = $res->and_where('amount','<=',DB::expr($filter['max_price']));


Но тогда появляеться SQL Inject Растерялся

(Отредактировано автором: 01 Июля, 2016 - 14:28:46)

 
 Top
T1grOK
Отправлено: 18 Июля, 2016 - 15:07:14
Post Id



Частый гость


Покинул форум
Сообщений всего: 129
Дата рег-ции: Июнь 2013  


Помог: 7 раз(а)




Сооружение костыля на практике.
Не лучше ли преобразовать поле amount к типу с плавающей точкой?!


-----
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
 
 Top
pantela
Отправлено: 18 Июля, 2016 - 16:49:22
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




т.е. Растерялся
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB