Tema: Buenas
Ver Mensaje Individual
  #12 (permalink)  
Antiguo 25/05/2009, 02:34
Avatar de abimaelrc
abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Buenas

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.