Ti ringrazio per l'ottimo lavoro....da diverso tempo stavo elaborando una soluzione per fare questo planning per il mio software e sembra calato apposta sulle mie tabelle.
Io ho fatto solo una modifica alla sql per gestire sia gli ospiti in casa che le prenotazioni facendo una union ed ho messo una funzione di modifca al campo in e out avendo messo d'appertutto nel mio db i campi come date e non timestamp.
Ve la invio...chissa che non serva a qualcuno!!!
SELECT *
FROM (
(
SELECT arrivi
.id_ospiti
, arrivi
.id_prenotazioni
, arrivi
.id_arrivo
, arrivi
.stato
, arrivi
.tipo_camera0
, arrivi
.id_camera
, arrivi
.id_per_tipo_ospite
, arrivi
.tipo_ospite
, UNIX_TIMESTAMP( arrivi
.check_in
) AS check_in
, UNIX_TIMESTAMP( arrivi
.check_out
) AS check_out
, arrivi
.n_giorni
FROM arrivi
WHERE arrivi
.id_camera
='".$row_stanze['id_stanza']."'
)
UNION (
SELECT prenotazioni
.id_ospiti
, prenotazioni
.id_prenotazioni
, prenotazioni
.id_arrivo
, prenotazioni
.stato
, prenotazioni
.tipo_camera0
, prenotazioni
.id_camera
, prenotazioni
.id_per_tipo_ospite
, prenotazioni
.tipo_ospite
, UNIX_TIMESTAMP( prenotazioni
.check_in
) AS check_in
, UNIX_TIMESTAMP( prenotazioni
.check_out
) AS check_out
, prenotazioni
.n_giorni
FROM prenotazioni
WHERE prenotazioni
.id_camera
='".$row_stanze['id_stanza']."'
)
) AS Tabella
WHERE ((check_in < '$startmonth' AND check_out >= '$startmonth') OR (check_in >='$startmonth' AND check_out <= '$stopmonth') OR (check_in <= '$stopmonth' AND check_out > '$stopmonth')) GROUP BY Tabella.id_per_tipo_ospite";