La query con i due AND è questa:
codice:
$tiempoin = mktime() - 86400;
$query = "SELECT * FROM prenotazioni WHERE (($dayin BETWEEN data_in AND data_out) AND ($dayout BETWEEN data_in AND data_out) OR ($dayin < data_in) AND ($dayout BETWEEN data_in AND data_out) OR ($dayin BETWEEN data_in AND data_out) AND ($dayout > data_out) OR ($dayin < data_in) AND ($dayout > data_out)) AND id_app=$_POST[app_id] AND status!='pending' AND ora_prenotazione>'$tiempoin'"; 
$result = mysql_query($query, $db);
$num_results = mysql_num_rows($result);
if ($num_results == "")
{ 
echo "appartamento libero"; 
} 
else
{
echo "appartamento occupato";
}
la quale mi risponde, sbagliando, che l'appartamento è libero.