Lo que haces es, si X campo no esta vacio entonces agregas eso a la consulta.
Te doy un ejemplo bien rapidito:
Código PHP:
<?php
$consulta = "SELECT * FROM tabla WHERE";
if(!empty($_POST['responsable'])) {
$array[] = " responsable = '{$_POST['responsable']}'";
}
if(!empty($_POST['estado'])) {
$array[] = " estado = '{$_POST['estado']}'";
}
$consulta .= implode(" AND", $array);
//ejecutas la consulta
?>