Мне нужно найти способ найти поле в базе данных, которое; численно, соответствует совпадению шкафа с тем, что пользователь ввел в веб-форму и отправил.
Более глубокое объяснение:
В таблице базы данных есть две строки с полем 80.1 и 80.7. Если пользователь сайта вводит 80 во входной элемент в веб-форме и передает это значение, скрипт обработки ищет эту таблицу и находит строку с 80.1 и выбирает это как совпадение шкафа.
Если это было наоборот, то есть пользователь, вводящий плавающее целое число (80.6), таблица, которая ищет ближайшее округленное число, т.е. (90), было бы легко. Я, очевидно, что-то пропустил и подумал, что для этого в PHP будет создана встроенная функция.
Извиняюсь, если я не объяснил себя хорошо, если да, пожалуйста, дайте мне знать.
попробуй это
SELECT * FROM `table_test1` where `price` > 80 order by `price` asc limit 1
SELECT ABS($user_value - numeric_field) as nearest, ... FROM yourtable ORDER BY nearest ASC LIMIT 1
в основном, возьмите разницу нужного поля и предоставленного пользователем значения, затем отсортируйте по разнице по возрастанию, а затем верните первую строку.
Таким образом, точное совпадение будет иметь значение 0 и выйдет первым. И затем выберите, какой бы ни был «ближайший», если нет точного соответствия.
SELECT ABS(price - 80) AS nearest FROM table ORDER BY nearest ASC LIMT 1;
Трудно дать вам точный ответ, однако вот какой-то псевдо SQL, который может вам помочь:
SELECT number, abs((number * 100) - ({$search_number} * 100)) AS distance FROM your_table ORDER BY distance LIMIT 1