Ho questa query:
che però non funziona quando il periodo in esame è a cavallo tra un anno ed un altro.Codice PHP:
$result = mysql_query("SELECT * FROM `offerte` WHERE ('$currentmonth' BETWEEN MONTH(`data_in`) AND MONTH(`data_out`)) AND '$currentyear' <= YEAR(`data_out`) AND `data_out` >= '$today' AND `id_hotel` = '$idh' AND `show_hide` != '$sh' ORDER BY `hotel_pos`,`inter_pos`,`data_in` ASC");
while ($row = mysql_fetch_array($result)) {
Faccio un esempio:
diciamo che un offerta inizia il 15-12-2010 e finisce il 15-01-2011, quindi se nella query la variabile $currentmonth è dicembre o gennaio, risulta compresa nel periodo di validità dell'offerta, e dovrebbe mostrarmi nel risultato della query anche questa offerta.
Invece, se inizio e fine dell'offerta sono nell'ambito dello stesso anno, va tutto ok, ma se - come nel caso - si estendono da un anno al successivo, la query non mi restituisce il risultato.
Eppure, scrivendo ... AND '$currentyear' <= YEAR(`data_out`) ... dovrei comprendere tutti i risultati in cui l'anno di fine offerta è superiore o uguale all'anno corrente!
Allora, perchè non va?
![]()