Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Проверка на float
Godwarlock  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 381
Пользователь №: 26806
На форуме: 6 лет, 4 месяца, 14 дней
Карма: 1




Всем привет. Столкнулся с проблемой выборки строки из БД.

$version_game = 1.87;
$query = $DB->query("SELECT * FROM `users` WHERE `ban` != '1' AND `version_game` = $version_game" );

Проблема в том, что сравнение version_game не срабатывает, $query возвращает всегда 0 строк. Само поле в бд version_game записано как float. Подскажите, как решить? И ковычки ставил и просто число вместо переменной вставлял, нефига не работает.

PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3706
Пользователь №: 38635
На форуме: 3 года, 7 месяцев
Карма: 198




float не сравнивают на равно. Только больше / меньше
// `version_game` = $version_game"  - не правильно
abs(`version_game` - $version_game) < 0.000001 // нужная точность


https://habrahabr.ru/post/112953/
п.п. 4.5 Сравнение чисел


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
karm  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 85
Пользователь №: 43872
На форуме: 5 месяцев, 5 дней
Карма: 1




вы имейте ввиду как вы сделали тип float? в таблице
сделайте тип - varchar для проверки
или double

$query = $DB->query("SELECT * FROM `users` WHERE `ban` != '1' AND `version_game` = '1'" ); - так попробуйте еще

Это сообщение отредактировал karm - 12.04.2017 - 13:22
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3706
Пользователь №: 38635
На форуме: 3 года, 7 месяцев
Карма: 198




Цитата (karm @ 12.04.2017 - 11:18)
сделайте тип - varchar для проверки

Два вопроса:
- Сколько занимает в базе float и сколько varchar ?
- Какие затраты на сравнение float и и какие на сравнение varchar ?


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Godwarlock  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 381
Пользователь №: 26806
На форуме: 6 лет, 4 месяца, 14 дней
Карма: 1




AllesKlar
Спасибо большое) Всё заработало таким образом)
karm
С varcharom то будет работать, но все данные должны быть типизированы соответствующим образом, поэтому varchar тут будет неуместен.
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
karm  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 85
Пользователь №: 43872
На форуме: 5 месяцев, 5 дней
Карма: 1




Цитата (AllesKlar @ 12.04.2017 - 13:21)
Цитата (karm @ 12.04.2017 - 11:18)
сделайте тип - varchar для проверки

Два вопроса:
- Сколько занимает в базе float и сколько varchar ?
- Какие затраты на сравнение float и и какие на сравнение varchar ?

а что вы меня проверяйте) я пишу для проверки, добавил - тип double еще можно


При современных компьютерах ваш вопрос не актуален)

Это сообщение отредактировал karm - 12.04.2017 - 13:24
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 16116
Пользователь №: 6543
На форуме: 8 лет, 9 месяцев, 24 дня
Карма: 304

Трезвый :
6 лет, 7 месяцев, 2 дня


Цитата (karm @ 12.04.2017 - 09:23)
При современных компьютерах ваш вопрос не актуален)
На визитках.


--------------------
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

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

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3706
Пользователь №: 38635
На форуме: 3 года, 7 месяцев
Карма: 198




Цитата (Godwarlock @ 12.04.2017 - 11:22)
С varcharom то будет работать, но все данные должны быть типизированы соответствующим образом, поэтому varchar тут будет неуместен.

Господи, как же долго я ждал нечто подобного biggrin.gif
Я прям эстетический оргазм получил smile.gif

Цитата (karm @ 12.04.2017 - 11:23)
тип double еще можно

Тип double используют для денежных величин.


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса