Bueno lo que yo hago es crear cada query segun lo que haya enviado el usuario
Código PHP:
if (empty($_SESSION["anal"]) && empty($_SESSION["clasific"]) && empty($_SESSION["numcas"]) && empty($_SESSION["dc1"])) {
$strsql = "select * from evaluacion order by '".$_GET['order']."'";
}
if (!empty($_SESSION["anal"]) && empty($_SESSION["clasific"]) && empty($_SESSION["numcas"]) && empty($_SESSION["dc1"])) {
$strsql = "select * from evaluacion where analista='".$_SESSION["anal"]."' order by '".$_GET['order']."'";
}
if (empty($_SESSION["anal"]) && !empty($_SESSION["clasific"]) && empty($_SESSION["numcas"]) && empty($_SESSION["dc1"])) {
$strsql = "select * from evaluacion where tipocla='".$_SESSION["clasific"]."' order by '".$_GET['order']."'";
}
Bueno como ves es hacer los condicionales con cada posibilidad, solo puse las primeras en el caso este que son 4 variables de filtrado seria 16 combinaciones (creo).
Puse fuae parte del codigo que tengo obvia lo que son variables de sesion, para ti serian las pariables POST del formulario. y obvia tambien lo de order by.