Проблема с оператором

У меня есть эта форма, которую я использую для поиска определенных записей из базы данных.

Это запрос:

$sql = "select * from `hostess` where first_name_en like '%$term' or family_name_en like '%$term%' order by `family_name_en` asc"; 

Проблема в том, что если я ищу, например, ele, приходят все имена, которые содержат ele , такие как elena и т. Д. И т. Д., Но если я напишу elena, ничего не появится.

Почему ?

Related of "Проблема с оператором"

Есть ли причина, по которой вы не использовали % в конце значения first_name_en ?

 $sql = "select * from `hostess` where first_name_en like '%$term%' or family_name_en like '%$term%' order by `family_name_en` asc"; 

Изменить: для проблемы с верхним регистром и нижним регистром:

 $term = strtolower($term); $sql = "select * from `hostess` where lower(first_name_en) like '%$term%' or lower(family_name_en) like '%$term%' order by `family_name_en` asc"; 

Ваш недостаток% в вашем первом LIKE. В настоящее время ваше высказывание ищет любое имя, которое заканчивается на элементе.

  1. LIKE '%ele' – будет соответствовать всем, что заканчивается на элементе
  2. LIKE 'ele%' – будет соответствовать всем, что начинается с элемента
  3. LIKE '%ele%' – будет соответствовать чему-либо элементу в нем
 $sql = "select * from `hostess` where first_name_en like '%$term%' or family_name_en like '%$term%' order by `family_name_en` asc"; 

% $% Срок

Использовать это