Yo lo que haría ya que no entiendo tu forma de hacer lo es la siguiente:
where a = $a and b = $b and c= $c and d = $d etc..
es decir, borra todo el match y solo deja una query simple con el where y las variables.
Estas variables si no tienen valor ponles uno por defect: