Dentro de comillas dobles puedes poner las variables directamente....... todo eso de
'. solo genera errores : eso aparece en tu SQL !!
Imprime $sql y veras lo que te digo:
Código PHP:
Ver original$sql = "SELECT * FROM identificacion WHERE '.(!empty($sexo) ? 'A2='$sexo' AND ': '').'((A3 >= '$edad1' and A3 <='$edad2') or '$edad1' = '')' AND (!empty($comunidad) ? 'A8='$comunidad' AND ': '').' AND '.(!empty($ocupacion) ? 'A7='$ocupacion' AND ': '').' AND'.(!empty($estadocivil) ? 'A4='$estadocivil' AND ': '').' AND '.(!empty($ayuda) ? 'A14='$ayuda' AND ': '')";
echo $sql;
La idea que te sugieren para incluir opcionalmente campos en el WHERE..... la veo MUY BUENA... pero es mejor implementarla asi:
Código PHP:
Ver original// verifico si tiene sentido incluir campo....
$sexo = !is_null($sexo) ?
"A2='$sexo' AND " : null;
//etc
Código PHP:
Ver original$sql = "SELECT * FROM identificacion WHERE $sexo $edad $comunidad $ocupacion ..... etc";
Luego... lo que haces es incluyes $sexo $edad ...etc: