, чтобы выполнить полнотекстовый поиск, вам необходимо:
Создать полнотекстовый индекс в таблице (обратите внимание, что поля не могут быть BLOB)
ALTER TABLE tablename ADD FULLTEXT(field1, field2,...);
в вашем случае:
ALTER TABLE table1 ADD FULLTEXT(fld_title, fld_keyword);
при изменении php
$k = trim ($_GET['search']);
$i = "";
$terms = explode (" ", $k);
$query = "SELECT * FROM table1 WHERE ";
foreach ($terms as $each){
$i++;
if ($i == 1)
$query .= "fld_title LIKE '%$each%' OR fld_keyword LIKE '%$each%' ";
else
$query .= "OR fld_title LIKE '%$each%' OR fld_keyword LIKE '%$each%' ";
}
для
$k = trim ($_GET['search']);
$query="SELECT * FROM table1 WHERE MATCH(fld_title, fld_keyword) AGAINST ('".$k."')";
, если вы хотите увидеть релевантность результатов:
$query="SELECT *, MATCH(fld_title, fld_keyword) AGAINST ('".$k."') as relevancy FROM table1 WHERE MATCH(fld_title, fld_keyword) AGAINST ('".$k."')";
MATCH-AGAINST возвращает число: 0 для несоответствия или другое в зависимости от соответствия.
Вы можете "упорядочить по релевантности", изменить запрос, чтобы сделать поиск более релевантным ... MATCH (fld_title, fld_keyword) AGAINST('". $ k."')> 0.5
Только одна проблема: часть ПРОТИВ ($ k для вас) должна быть больше 3 символов.