Здесь много вариантов.Один из возможных вариантов - установить начальное значение $ where для этого условия, а затем в зависимости от вашего требования добавить AND или OR для остальной части того места, где включен поиск.Для этого оператор WHERE должен быть удален из функции getWhereClause:
function getWhereClause($col, $oper, $val){
global $ops;
if($oper == 'bw' || $oper == 'bn') $val .= '%';
if($oper == 'ew' || $oper == 'en' ) $val = '%'.$val;
if($oper == 'cn' || $oper == 'nc' || $oper == 'in' || $oper == 'ni') $val = '%'.$val.'%';
return " $col {$ops[$oper]} '$val' ";
}
$where = "WHERE category = 'A'";
...
if ($_GET['_search'] == 'true') {
$where = $where. " AND ". getWhereClause($searchField,$searchOper,$searchString);
// var_dump($where);
}
...
// the actual query for the grid data
$SQL = "SELECT * FROM enemy_coords ".$where." ORDER BY $sidx $sord LIMIT $start , $limit";
$result = mysql_query( $SQL ) or die("Couldn't execute query.".mysql_error());
Конечно, для выполнения этого штрафа необходимо выполнить больше условий проверки, но это всего лишь направление.