Si copias y pegas el string sql resultante en un cliente mysql, que pasa?
Si entra a este else:
Código PHP:
Ver original}else{
$sql.="(trabajadores LIKE '%?%' OR trabajadores LIKE '%?%') OR";
}
y después
¿No se están juntando el OR y el AND?
Acá te falta un paréntesis derecho.
Falta un espacio.
Los count intenta hacerlos fuera de los ciclos guardando el resultado en una variable, asi el conteo no se ejecuta en cada vuelta.
Amigo, no es por nada pero veo que el código esta repleto de errores de todo tipo, desde muy graves como los errores de sintaxis, hasta de rendimiento y de lógica. Yo diría que lo mastiques un poco mas.