Disponibilità camere

Rey

Utente Attivo
11 Set 2012
73
0
6
Ho fatto i test, controllando la disponibilità il giorno prima di una prenotazione mi da occupata..

DispoCamere2a-cerchio.gif

Questi sono i due risultati compresi di var_dump su checkin e checkout:

Codice:
int(33) int(34) Database vuoto!
Codice:
int(39) int(40) Database vuoto!
DispoCamere2b-cerchio.gif

Codice:
int(32) int(34) Database vuoto!
Codice:
int(38) int(40) Database vuoto!
Idem in DispoCamere2c e DispoCamere2d..
 

marino51

Utente Attivo
28 Feb 2013
2.741
141
63
Lombardia
si, scusa, per errore ho postato la query con l'uguale
questa è la stessa modificata
Codice:
SELECT * from appartamenti 
WHERE NOT EXISTS
(
SELECT idappartamenti 
FROM prenotazioni
WHERE
(
( iddatainizio >= $checkin AND iddatainizio < $checkout ) 
OR
( iddatafine >= $checkin AND iddatafine <= $checkout ) 
OR
( $checkin >= iddatainizio AND $checkin < iddatafine ) 
)
AND idappartamenti=appartamenti.idappartamenti
)
nello zip allegato le foto... rivedi per cortesia
Vedi l'allegato DispoCamere2.zip
scusa ancora, ciao
Marino
 

Rey

Utente Attivo
11 Set 2012
73
0
6
Grazie! Ho rifatto tutti i test, funziona perfettamente :D Sei un mago ;)
 

Rey

Utente Attivo
11 Set 2012
73
0
6
Ciao Marino,
ho trovato un bug nella query.. Se ad esempio nella camera 1 c'è una prenotazione dal 3 al 5 febbraio e controllo la disponibilità il giorno prima è tutto ok.. Se però la prenotazione è di una notte non fa prenotare...

bug.png
 

marino51

Utente Attivo
28 Feb 2013
2.741
141
63
Lombardia
con le date è più semplice, con le settimane la verifica di funzionamento non è ... facile
ho modificato le condizioni aggiungendone una, rivedi i vari casi
le condizioni sono sempre in "or" tra loro, ti posto le 4 variabili,
PHP:
$c1 = "$checkin >= iddatainizio AND $checkin < iddatafine";
$c2 = "$checkout > iddatainizio AND $checkout < iddatafine";
$c3 = "iddatainizio >= $checkin AND iddatainizio < $checkout";
$c4 = "iddatafine >= $checkin AND iddatafine < $checkout";