il faut construire ton "where" dynamiquement.
 
Teste les valeurs de tes champs, si ils sont renseignés rajoute la condition a ta clause where.
 
tu peux par exemple rajouter tes champs valides dans un tableau  
Code :
 - $conditions[] = 'condition1="valeur1"';
 - $conditions[] = 'condition2="valeur2"';
 - $conditions[] = 'condition4="valeur4"';
 
  | 
et faire un implode par la suite
Code :
 - if(count($conditions)>0)
 -   $mes_conditions =  'where '.implode(' AND ',$conditions);
 - $sql_querie = "select * from table $mes_conditions";
 
  | 
 
ce qui te donne au final une requete avec uniquement tes champs renseignés:
select * from table where condition1="valeur1" AND condition2="valeur2" AND condition4="valeur4"