Система поиска соответствия шаблону PHP - PullRequest
1 голос
/ 21 апреля 2011

Я пытаюсь получить PHP-поиск по буквам, введенным в текстовое поле. Я хочу, чтобы он соответствовал шаблону и находил соответствующие результаты в базе данных.

Так что, если я наберу

"Jo Smi"

Это найдет результаты

J o Smith, Pojo Smithson, Ojo Smith

Как можно этого достичь. Я знаю, как получать информацию из базы данных, но не из частей различных полей.

Целью является поиск среди пользователей, осуществляющих поиск в полях user_firstname, user_lastname и user_email

Есть идеи?

Ответы [ 4 ]

1 голос
/ 21 апреля 2011

Вы должны быть в состоянии сделать это прямо из вашего запроса.

получить результаты текстового поля и избежать их, затем сделать

SELECT * FROM `database` WHERE `name` REGEXP '{INPUT TEXT HERE}';

Это должно сработать, я думаю.

0 голосов
/ 21 апреля 2011

Hello Man предыдущий ответ хорош но вы хотите знать эту информацию

  1. получить переменную => $name = $_GET['name'];

  2. , если вы хотите сделать его заглавным используйте strtoupper();

  3. если хочешь сделать строчные буквы strtolower();
  4. если хочешь поиск вы должны заменить = на где where name = $name where name like $name
  5. эта информация
  6. abc% => переменная начинается с abc и заканчивается любой вещью
  7. % abc% => переменная запускает любую вещь, содержит abc, заканчивает любую вещь
  8. % abc => любая переменная запускается, заканчивается abc
0 голосов
/ 21 апреля 2011

Выполните LIKE поиск по заглавной версии ваших поисковых терминов.Не забудьте mysql_real_escape_string().

$searchpattern = mysql_real_escape_string(strtoupper("Jo Smi"));
mysql_query("SELECT * FROM table WHERE UPPER(column) LIKE '%$searchpattern%';"); 
0 голосов
/ 21 апреля 2011

Вы можете упростить поиск по полям в базе данных, используя предложение LIKE:

$query = "SELECT Fields FROM Table WHERE TestField LIKE '%".$escapedTextString."%'";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...