Ciao a tutti !
Mi sono arenata su un problema con una verifica di disponibilita' per delle camere di un albergo.
Ho una tabella di un db che si chiama prenotazioni ed e' cosi' composta:
id | id_camera | data | stato
----------------------------------------------
1 | 3 | 2013-05-19 | 1
----------------------------------------------
2 | 3 | 2013-05-20 | 1
----------------------------------------------
3 | 3 | 2013-05-21 | 1
----------------------------------------------
4 | 7 | 2013-07-15 | 1
----------------------------------------------
5 | 7 | 2013-07-16 | 1
ecc..ecc....
In pratica, salvo il giorno prenotato (o in prenotazione) e lo lego all'id della camera.
Come posso fare per verificare la disponibilita' delle camere in base al giorno di arrivo e quello di partenza ?
Avevo pensato una cosa del genere ma purtroppo non riesco a farla andare:
Codice PHP:
// ARRIVO DA FORM IN CUI HO SELEZIONATO DATA DI ARRIVO E DATA DI PARTENZA
$dal = $_POST['from'];
$al = $_POST['to'];
// CALCOLO QUANTI GIORNI SONO E RICONVERTO DATA IN ANNO/MESE/GIORNO
$date_from_parts = explode('/', $dal);
$date_to_parts = explode('/', $al);
$ts_from = mktime(0, 0, 0, $date_from_parts[1], $date_from_parts[0], $date_from_parts[2]);
$ts_to = mktime(0, 0, 0, $date_to_parts[1], $date_to_parts[0], $date_to_parts[2]);
for ($x = $ts_from; $x <= $ts_to; $x += 86400){
$days[] = date('Y-m-d', $x);
}
for ($i = 0; $i <= count($days)-1; $i++) {
// SCORRO TUTTI I GIORNI CHE VANNO DA FROM A TO
//echo $days[$i]."
";
$queryDisponibilita= "SELECT * FROM prenotazioni WHERE data = $days[$i]";
$resultDisponibilita = mysql_query($queryDisponibilita);
$righeDisponibilita = mysql_num_rows($resultDisponibilita);
if (mysql_num_rows($resultDisponibilita) != 0) {
while ($arrayDisponibilita = mysql_fetch_assoc($resultDisponibilita)) {
// STAMPO LE CAMERE DISPONIBILI
echo "$arrayDisponibilita[id_camera]
";
}
} else {
echo "nessun appartamento disponibile per il periodo prescelto...";
}
Purtroppo non riesco proprio a farlo funzionare, eppure, verificare se effettivamente il giorno e' nella tabella prenotazioni (e se non c'e' ovviamente la camera e' disponibile) mi sembra la soluzione migliore !
In ogni modo, grazie 1000.