Tengo el siguiente código:
Código PHP:
$sql_indirect = "SELECT X
FROM Y";
if($direct_search == 'NO'){
$sql_indirect = $sql_indirect." WHERE algo=$variable1";
}
$sql_indirect = $sql_indirect." ORDER BY X";
$sql_direct = "SELECT X
FROM Y,J";
if($direct_search == 'NO'){
$sql_direct = $sql_direct." WHERE algo=$variable2";
}
$sql_direct = $sql_direct." ORDER BY X";
if (((($variable1 == '666') && ($variable == '3')) || (($variable1 <> '666') && ($variable2 == '6'))) && $direct_search=='NO') {
$sql = $sql_indirect;
}else{
$sql = $sql_direct;
}
$sql = consulta_db($sql);
if (($direct_search == 'YES') && !($resultado = ibase_fetch_object($sql))) {
$sql = consulta_db($sql_indirect);
}
$resultado = ibase_fetch_object($sql);
$ref_app = "<select id=\"applications\" name=\"applications\">";
if ($resultado) {
do {
$ref_app = $ref_app."<option>".htmlentities($resultado->X)."</option>";
} while($resultado = ibase_fetch_object($sql));
}
$ref_app = $ref_app."</select>";
return $ref_app;
El problema radica con la condición:
Código PHP:
if (($direct_search == 'YES') && !($resultado = ibase_fetch_object($sql))) {
$sql = consulta_db($sql_indirect);
}
$resultado = ibase_fetch_object($sql);
Que nunca llega a cumplirse.
¿Está bien construida la condición en la cual si la primera consulta no me devuelve nada la repita pero asignando una nueva query a $sql?
Me lío un poco aún con la negación.
Saludos.