Pero no te bastaría con concatenar un WHERE nombre='Alex' AND edad='12' si son 2 valores es fácil determinar... ahora si hay muchos más campos vacíos vas a tener que hacer un bucle que te compruebe todas las posibilidades e ir dejando o completando espacios vacíos en el query y sobre todo poniendo WHERE y AND en los casos que sean necesarios, quiere decir que también puedes usar un Switch Case... te dejo un ejemplo:
Código PHP:
<?php
$campo1_ind='';
$campo2_ind='';
$campo3_ind='';
$campo4_ind='';
$n = 5;
for($x=1;$x<$n;$x++){
switch ($x) {
case 1:
if(!empty($campo1)){
$campo1_ind=' WHERE ';
$querycampo1="parte query 1";
}
break;
case 2:
if(!empty($campo2)){
if($campo1_ind==' WHERE '){
$campo2_ind=' AND ';
}
else{
$campo2_ind=' WHERE ';
}
$querycampo2=" parte query 2";
}
break;
case 3:
if(!empty($campo3)){
if($campo1_ind==' WHERE ' || $campo2_ind==' WHERE '){
$campo3_ind=' AND ';
}
else{
$campo3_ind=' WHERE ';
}
$querycampo3=" parte query 3";
}
break;
case 4:
/*....*/
break;
}
}
?>
Al final concatenas las variables $querycampoX con tu query principal.... si hay otra forma más óptima.... bienvenida sea