Bueno en cada if tienes declarado esto
Código PHP:
if ($porsexo!="") {$a=1;$sql="$sql sexo like '$porsexo'";}
if ($porfecha!="") {$a=1;$sql="$sql fecha like '$porfecha'";}
if ($pornacionalidad!="") {$a=1;$sql="$sql nacionalidad like '$pornacionalidad'";}
if ($porresidencia!="") {$a=1;$sql="$sql residencia like '$porresidencia'";}
if ($porfigurante!="") {$a=1;$sql="$sql figurante like '$porfigurante'";}
if ($porprofesional!="") {if ($a==1) {$a=0;$sql="$sql and ";} $a=1;$sql="$sql profesional='$porprofesional'";}
if ($porojos!="") {$a=1;$sql="$sql ojos like '$porojos'";}
if ($porpelo!="") {$a=1;$sql="$sql pelo like '$porpelo'";}
if ($portampelo!="") {if ($a==1) {$a=0;$sql="$sql and ";} $a=1;$sql="$sql tampelo='$portampelo'";}
if ($porpiel!="") {$a=1;$sql="$sql piel like '$porpiel'";}
if ($poraltura!="") {$a=1;$sql="$sql altura like '$poraltura'";}
if ($porpeso!="") {$a=1;$sql="$sql peso like '$porpeso'";}
if ($porespecialidades!="") {$a=1;$sql="$sql especialidades like '$porespecialidades'";}
el problema de usar los if es que si no los crea usando su estructura
if(){
}
elseif(){
}
else{
}
y creas muchos
if(){}
if(){}
if(){}
if(){}
if(){}
el interpretador de php va a entender que quieres consultar todas las condiciones. Si lo hubieras hecho con la estructura de if elseif else, cuando encuentre el primero se detiene ahi con los If y continua con lo que va despues de la estructura de if.
Por lo tanto en el error que mencionaste esta encontrando tres if
fecha
nacionalidad
residencia
y lo que esta haciendo es una concatenacion por lo tanto cuando los une como no encuentra un AND o OR comete un error.