En realidad eso no iba a funcionar bien ya que habría un carácter de más
La query quedaría asi 
 Código PHP:
    $sql="select * from tabla where and campo1 like '$_POST[campo1]' and campo2='$_POST[campo2]'"; 
    
  Esto creará un mensaje de error
Podemos hacer lo siguiente 
 Código PHP:
    //Iniciamos la consulta
$sql="select * from tabla";
//Ahora veremos que campos ha rellenado
if($_POST[campo1]!="" || $_POST[campo2]!="") {
//Añadimos la clausula where
$sql.=" where";
//Creamos una variable que tendrá los campos limitadores de la búsqueda
$anadir="";
//Ahora vamos campo a campo
if($_POST[campo1]!="") {
$anadir.=" and campo1 like '$_POST[campo1]'";
}
if($_POST[campo2]!="") {
$anadir.=" and campo2 like '$_POST[campo2]'";
}
//Ahora eliminamos el primer and
$anadir=substr($anadir,4,strlen($anadir)-1);
}
//Y finalmente dejamos construida la query
$sql.=$anadir;
//Y realizamos la consulta
$result=mysql_query($sql); 
    
  En caso de ser muchos campos, puede ser interesante crear un array con todos los campos post y recorrerlo mediante foreach