Geht ja doch...
Falls mal jemand danach sucht und fragt...
Lösung für 4 Suchbegriffe
Filterset mit "Eigenes SQL":
Code:
SELECT *
FROM {{table}}
WHERE (
s_name LIKE (CONCAT('%',{{param::get?name=search1&default=%%}},'%')) OR
s_vorname LIKE (CONCAT('%',{{param::get?name=search1&default=%%}},'%')) OR
s_adresse LIKE (CONCAT('%',{{param::get?name=search1&default=%%}},'%')) OR
s_nasenlaenge LIKE (CONCAT('%',{{param::get?name=search1&default=%%}},'%'))
) AND (
s_name LIKE (CONCAT('%',{{param::get?name=search2&default=%%}},'%')) OR
s_vorname LIKE (CONCAT('%',{{param::get?name=search2&default=%%}},'%')) OR
s_adresse LIKE (CONCAT('%',{{param::get?name=search2&default=%%}},'%')) OR
s_nasenlaenge LIKE (CONCAT('%',{{param::get?name=search2&default=%%}},'%'))
) AND (
s_name LIKE (CONCAT('%',{{param::get?name=search3&default=%%}},'%')) OR
s_vorname LIKE (CONCAT('%',{{param::get?name=search3&default=%%}},'%')) OR
s_adresse LIKE (CONCAT('%',{{param::get?name=search3&default=%%}},'%')) OR
s_nasenlaenge LIKE (CONCAT('%',{{param::get?name=search3&default=%%}},'%'))
) AND (
s_name LIKE (CONCAT('%',{{param::get?name=search4&default=%%}},'%')) OR
s_vorname LIKE (CONCAT('%',{{param::get?name=search4&default=%%}},'%')) OR
s_adresse LIKE (CONCAT('%',{{param::get?name=search4&default=%%}},'%')) OR
s_nasenlaenge LIKE (CONCAT('%',{{param::get?name=search4&default=%%}},'%'))
)
Dazu muss man sich dann noch ein Suchfeld bauen, dass per js aus "mustermann max allee" eine /liste/search1/mustermann/search2/max/search3/allee.html erzeugt...
z.B. (mit Rausfiltern von ein paar ungewollten Sonderzeichen)
Code:
<form id="form_servicesql" action="javascript:send_sql()">
<div class="form-group row">
<input id="fsuche_sql" class="col-9 form-control" type="text" name="fsuche_sql" value="" />
<button type="submit" onclick="send_sql();" class="col-2 ml-3 btn btn-primary submit" form="form_servicesql" value="">Suchen</button>
</div>
</form>
<script>
function send_sql(){
let path_begin = '/liste';
let path_string = '';
let path_end = '.html';
let input = document.querySelector('#fsuche_sql').value;
input = input.replace(/['"]+/g, '');
input = input.replace('+', '');
input = input.replace('?', '');
input = input.replace('#', '');
input = input.replace('&', '');
let inputs = input.split(' ');
for (var i = 0; i < inputs.length; i++) {
path_string += '/search' + (i+1) + '/' + inputs[i];
}
let path = path_begin + path_string + path_end;
window.open(path,'_self');
}
</script>
Lesezeichen