float не работает в базе данных MySQL - PullRequest
0 голосов
/ 02 июня 2011

Я использую $ _GET ['var'], чтобы получить переменную, а затем сравнить ее с переменной в моей базе данных.переменная равна 1,1, переменная установлена ​​на «float» в базе данных, поэтому я знаю, что она может обрабатывать десятичные дроби, но когда я сравниваю их с кодом ниже, я ничего не получаю.

Ответы [ 5 ]

7 голосов
/ 02 июня 2011

Из того, что я знаю, float тип не точный. Он не показывает вам фактическое значение, поэтому 1.1, которое вы сохранили, может не соответствовать сохраненному фактическому значению. Попытка установить ваше поле как decimal и дать ему длину, скажем, 10,1, где 10 - максимальное количество цифр (точность), а 1 - количество цифр справа от десятичной точки (шкала). Это должно работать, выполняя запрос как stuff='1.1' или stuff=1.1.

2 голосов
/ 02 июня 2011

WHERE stuff = '$stuff' - сравнение строк.

Сравнивать число вот так

WHERE stuff = $stuff
0 голосов
/ 02 июня 2011

Не используйте float (даже если вы вставите 1.1 в таблицу, фактическое значение для типа с плавающей запятой не 1.1, а что-то вроде 1.100000023841858)Измените его на double в базе данных (или десятичном)

0 голосов
/ 02 июня 2011

Возможно, вы не видите никаких выходных данных, потому что ваше эхо находится за пределами цикла.

Область действия вашей переменной $ start будет ограничена циклом.

0 голосов
/ 02 июня 2011

Измените поле вещи на тип DOUBLE. Тогда

SELECT * FROM table WHERE stuff=$stuff

это должен быть SQL-запрос

...