Советы по написанию функции поиска с PHP и MySQL - PullRequest
1 голос
/ 15 декабря 2010

Я занимаюсь разработкой веб-приложения, часть которого содержит возможность позволить пользователю выполнять поиск по нескольким полям в 7 таблицах в базе данных.

Пользователи могут искать (например)

Имя - текст
Фамилия - текст
Высота - выберите
Минимум возраста - выберите
Максимальный возраст - выберите
Любимый цвет - выберите
Колледж - выберите

... и многие другие

Форма поиска HTML будет содержать текстовые поля, множество выбранных раскрывающихся списков и некоторые флажки.

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

Большое спасибо заранее.

Ответы [ 3 ]

1 голос
/ 15 декабря 2010

Вам необходимо использовать оператор LIKE в sql и подстановочные символы поиска.

SELECT
  * 
FROM
  users
WHERE
  first_name LIKE '%".$first_name."%' ||
  age > '".$age."'
0 голосов
/ 15 декабря 2010

Форма поиска HTML будет содержать текстовые поля, множество выпадающих списков и некоторые флажки. Может ли кто-нибудь предложить какой-либо совет, передовой опыт, шаблоны проектирования или ресурсы для решения этой проблемы.

Я бы предположил, что Google иллюстрирует лучший пользовательский интерфейс для поиска. Не давайте мне много пустых полей, только одно текстовое поле, чтобы я мог напечатать "Shirley Jones UAF"

0 голосов
/ 15 декабря 2010

Я бы не стал создавать функцию поиска по ключевым словам в SQL.Вы должны прочитать о встроенной функции полнотекстового поиска MySQL.Попытка всестороннего поиска с помощью базового SQL потребует много времени на разработку и медлительность во время выполнения.

Основная идея полнотекстового поиска - это сочетание двух систем.Во-первых, индексатор, который считывает вашу базу данных по ключевым словам и создает их «индекс».Во-вторых, Searcher, который просматривает каталог, созданный индексатором, для создания результатов поиска.

Существуют сторонние инструменты - Lucene, Xapian, Sphinx - которые упаковывают свои собственные Indexer / Searcher.Я использовал Xapian для некоторого успеха.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...