Con le modifiche alla tabella ed avendo quindi due campi data puoi fare così:
Che in poche parole ti seleziona l'offerta la cui data di inizio è minore o uguale alla data di richiesta e la data di fine è maggiore o uguale alla data di richiesta.Codice PHP:
SELECT * FROM offerte p JOIN hotel cp ON p.idhotel = cp.idhotel WHERE p.idhotel = ' . $row['idhotel'] . ' AND p.dal <= NOW() AND p.al >= NOW() LIMIT 1
Considera che se non ci sono offerte valide la query non restituisce risultati quindi dovresti gestire anche questa eventualità.
Ciao