Pues acá hay 2 soluciones; 1 con javascript (más eficiente) y otra del lado del server ...
Posteo la del lado del server ...
Código PHP:
#duplica esta entrada para cada $_GET
$_GET[ 'carpeta' ] = $_GET[ 'carpeta' ] == '' ? '-------' : $_GET[ 'carpeta' ];
$query_busqueda_resultado = 'SELECT *
FROM documentos
WHERE carpeta_ID LIKE "%' . $_GET[ 'carpeta' ] . '%"
AND funcionario_ID LIKE "%' . $_GET[ 'funcionarios' ] . '%"
AND fecha_entrada LIKE "%' . $_GET[ 'fecha_entrada' ] . '%"
AND fecha_documento LIKE "%' . $_GET[ 'fecha_doc' ] .'%"';
Lo que te está ocurriendo tiene sentido, ya que le estas diciendo a MySQL que te traiga las coincidencias de todos los campos ... osea te está generando cosas como
WHERE carpeta_ID LIKE "%%" ... entonces obviamente pues todo coincide con eso ...
![apachar ojo](http://static.forosdelweb.com/fdwtheme/images/smilies/wink.png)
...
Con javascript lo que tendrías que hacer es antes del envío del formulario validar cuáles de tus campos de búsqueda van vacíos y para el que valla vacío cambiarle el valor a "-------" ...
NOTA: Estoy usando
------- asumiendo que en los registros no existe tal valor, obviamente hay formas mejores, del lado del server, x ejemplo reconstruyendo el query si vienen vacíos y metiendo un where que invalide los like . Solo muestro lo que tienes que hacer y una solución simple, la solución final es decisión tuya.
Mucha suerte y un saludo