fijate si algo asi te sirve:
Código PHP:
$consulta=$_POST['consulta'];
$terms = explode(" ", $consulta);
$cadena = "SELECT * FROM cliente WHERE ";
for(@reset($terms); list(, $term) = @each($terms); $cadena .= 'AND ') {
$cadena .= "(nombre LIKE '%$term%' OR empresa LIKE '%$term%' OR direccion LIKE '%$term%' OR observaciones LIKE '%$term%') ";
}
$cadena = substr($cadena,0,-5);
$cadena .="ORDER BY nombre";
asi como esta te va a devolver solo las filas donde se encuentren todas las palabras ingresadas (aunque esten en campos diferentes).
Si queres que te devuelva todos los resultados que tengan por lo menos una de las palabras buscadas en uno de los campos tenes que cambiarle:
$cadena .= 'AND ' <- por -> $cadena .= 'OR '
y
$cadena = substr($cadena,0,-5); <- por -> $cadena = substr($cadena,0,-4);
espero que te sirva