Я обновляю свой сайт квадрокоптера и улучшаю свою систему поиска. В настоящее время пользователь может осуществлять поиск только по модели квадрокоптера. Сейчас я немного улучшаю это, чтобы пользователь мог искать марку или модель.
Я хотел бы, чтобы пользователь мог ввести марку и модель в поле поиска и разрешить проверку обоих слов между любой записью в БД.
По сути, скажем, марка квадрокоптера — «DJI», а модель — «Фантом», в моей базе данных один будет храниться под брендом «столбец», а другой — под «моделью». Я хотел бы, чтобы пользователь мог ввести «фантом dji» и показать модель.
Если это невозможно, то есть ли способ показать результат, даже если он не точен? С помощью моего поля поиска в настоящее время вы можете искать квадрокоптер, если оно содержит полную часть строки. Например, «завод» покажет «DJI Phantom», а «антон»
Вот мой запрос:
$search = $_GET['search'];
$search_list = mysqli_query($conn,"SELECT * FROM quads WHERE model LIKE '%$search%' OR brand LIKE '%$search%'");
PS (я знаю, что он уязвим для инъекций; это я исправлю на этой неделе, спасибо).
DJI Phantom
не будет соответствовать ни модели, ни бренду. Не могли бы вы разделить текст поиска, а затем попытаться увидеть, есть ли совпадение в БД? - person Maximus2012   schedule 14.11.2016CONCAT
, чтобы добавить еще одно условие поиска в дополнение к тому, что у вас уже есть? stackoverflow.com/questions/303679/ Даже если это сработает, это сработает только в конкретном случае, когда пользователь вводит что-то вродеDJI Phantom
, но это должно быть хорошим началом. - person Maximus2012   schedule 14.11.2016CONCAT
, но работа над вставкой, а не выбором, заключается в создании столбцаsearch_string
с маркой и моделью и, возможно, серийным номером. Иногда я также видел ожидаемые частичные совпадения. Затем вы также можетеexplode(' ', $search)
, если хотите проверить токены в строке поиска независимо. - person Jerry   schedule 14.11.2016