Фильтрация на стороне клиента (встроенная) для плагина DataTables действительно хороша.Он будет фильтровать ваши результаты на основе ваших поисковых слов, слово за словом в любом поле.
В приведенном примере кода на стороне сервера выполняется поиск по всей строке в любом поле.Как бы я изменил это
$sWhere = "";
if ($_GET['sSearch'] != "") {
$sWhere = "WHERE (";
for ($i = 0; $i < count($aColumns); $i++) {
$sWhere .= $aColumns[$i] . " LIKE '%" . mysql_real_escape_string($_GET['sSearch']) . "%' OR ";
}
$sWhere = substr_replace($sWhere, "", -3);
$sWhere .= ')';
}
для достижения того, что я ищу?
До сих пор я пробовал следующие варианты:
$sWhere = "";
if ($_GET['sSearch'] != "") {
$sWhere = "WHERE (";
$words = explode(" ",$_GET['sSearch']);
for ($i = 0; $i < count($aColumns); $i++) {
for($j = 0; $j < count($words); $j++) {
if($words[$j] != "") {
$sWhere .= $aColumns[$i] . " LIKE '%" . mysql_real_escape_string($words[$j]) . "%' OR ";
}
}
}
$sWhere = substr_replace($sWhere, "", -3);
$sWhere .= ')';
}
сне повезло вообще.Я бы предположил, что мне просто нужно перебрать все «слова» в строке поиска и искать каждый столбец по ним.Теперь я теряю себя с логикой.Я ищу во всех полях все слова, мне просто нужно сгруппировать их с помощью AND и OR таким образом, чтобы при наличии следующей таблицы
|col1 | col2 | col3
-----------------------
#1| aaa | bbb | ccc
#2| aaa | ddd | xxx
#3| hugo | aaa | rap
и поиске «aaa bbb» я возвращал толькорезультат № 1, а не все три.Я знаю, что это просто ... однако я так ломал голову над этим, что потерял себя.