la tabella e' questa:
CREATE TABLE IF NOT EXISTS `tabella` (
`id_offerta` int(6) NOT NULL AUTO_INCREMENT,
`valida_da` date NOT NULL,
`valida_fino` date NOT NULL,
`minimo_notti` int(2) NOT NULL,
`prezzo` float NOT NULL,
`prezzo_come` int(2) NOT NULL,
`id_albergo` int(5) NOT NULL,
PRIMARY KEY (`id_offerta`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3434 ;
spiego i campi:
- id offerta si capisce
- valida_da: giorno in cui inizia l'offerta
- valida_fino: giorno in cui scade l'offerta
- minimo_notti: il numero di notti minimo per far si che l'offerta sia valida
- prezzo: prezzo dell'offerta
- prezzo_come: se inserisco 1 significa che e' il prezzo di 1 giorno, se metto 2 significa che il prezzo inserito e' il totale di 2 giorni e cosi' via, 7 significa che il prezzo è settimanale
- id_albergo: è l'id dell'hotel a cui fa riferimento questa offerta.
Nella query sto dando anche una flessibilità di 3 giorni, in modo che se qualcuno cerca dal 18 giugno e l'offerta parte il 21 giugno, gli do la possibilità di vederla in modo che se gli interessa ed ha date flessibili puo' spostare il soggiorno.
Questa e' la query attuale:
Codice PHP:
$query_offerte="SELECT id_offerta , DATE_FORMAT(valida_da, '%d/%m/%Y') AS valida_da_ita, DATE_FORMAT(valida_fino, '%d/%m/%Y') AS valida_fino_ita, minimo_notti, prezzo, prezzo_come, id_albergo FROM tabella WHERE '$arrivo' between DATE_ADD(valida_da, INTERVAL -3 DAY) AND valida_fino AND DATE_ADD(STR_TO_DATE('$arrivo', '%Y-%m-%d'), INTERVAL +prezzo_come DAY) <= valida_fino AND DATE_ADD(STR_TO_DATE('$arrivo', '%Y-%m-%d'), INTERVAL +prezzo_come DAY) <= valida_fino AND DATE_ADD(STR_TO_DATE('$arrivo', '%Y-%m-%d'), INTERVAL +$durata DAY) <= valida_fino ";