Visualizzazione risultati 1 fino 5 di 5

Discussione: [mysql] Gestione script prenotazioni hotel

  1. #1
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito [mysql] Gestione script prenotazioni hotel

    Hello everyone!
    Dovrei creare un programma per gestire le prenotazioni delle camere di un agriturismo.
    Non ho sbagliato a posizionare la parola "Gestione", nel titolo: il problema non è tanto la programmazione, ma il sistema, ovvero come funzionerà. Quindi mi serve un vostro aiuto sulla "gestione" dello script.

    Il sistema permetterebbe all'utente di inserire data di arrivo e di partenza.
    Io, a seconda dei dati inseriti, gli restituirò l'elenco delle camere disponibili per i dati inseriti.
    Ho pensato alla creazione di due tabelle: "Camere" e "Prenotazioni".
    In "Camere" inserirò la tipologia della camera (singola, doppia, matrimoniale ecc.).
    In "Prenotazioni" inserirei queste colonne: "Dal", "Al", "IDCamera".
    Ovviamente i nomi sono indicativi e non ho considerato tutti gli altri campi quali IDPrenotazione, Nome, Cognome ecc.
    Ad esempio, abbiamo le camere 1, 2 e 3 e le seguenti prenotazioni:
    Codice:
    Dal          Al           IDCamera
    03-05-2014   06-05-2014   1
    08-05-2014   10-05-2014   1
    09-05-2014   10-05-2014   2
    Mettiamo che tutte e tre le camere siano delle singole.
    L'utente cerca una singola dal 6 al 9: in questo caso gli verrebbero restituite la 2 e la 3 poiché la 1 è prenotata dall'8.
    Quale query dovrei eseguire per trovarmi le camere disponibili?
    È questo il metodo migliore per la creazione di questo programma?

    Grazie mille

  2. #2
    Guest

    Predefinito

    Tutto in SQL è tosta da fare, con PHP è un po' più semplice. Basta che selezioni le prenotazioni per la camera che il cliente sta cercando e controlli che nel periodo inserito dal cliente la camera sia libera.
    Se invece l'utente deve inserire solo il periodo di arrivo e partenza guardi nella tabella prenotazioni per quel periodo (BETWEEN data_arrivo AND data_partenza) e selezioni le camere occupate, quindi guardi se te ne resta qualcuna libera e gliela mostri.
    Detto così a parole sembra semplice, ma la realizzazione non è tanto complessa in PHP, mentre in SQL diventa difficile

  3. #3
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Non avevo alcuna intenzione di farlo tutto in SQL
    Comunque, ci sono riuscito.
    Codice:
    SELECT * FROM Prenotazioni WHERE IDCamera = $IDCamera AND (CheckIn BETWEEN CAST('$CheckIn' AS DATETIME) AND CAST('$CheckOut' AS DATETIME) OR CheckOut BETWEEN CAST('$CheckIn' AS DATETIME) AND CAST('$CheckOut' AS DATETIME))
    Danke!

  4. #4
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Scusate se riesumo un topic non troppo recente.
    Ho trovato un problema in quella query.

    Se aggiungo una prenotazione dal 10 al 20, e poi controllo se quella camera è libera dal 5 al 15, mi dice che è occupata, perché il 10 (prenotazione effettuata) è tra il 5 e il 15 (controllo prenotazione).
    Il problema è che se aggiungo una prenotazione sempre dal 10 al 20, ma poi controllo la disponibilità, per esempio, dal 12 al 14 (quindi entrambe le date sono interne alla prenotazione effettuata precedentemente), mi dice che è libera. Questo perché né il 10 è tra 12 e 14, né il 20 è tra 12 e 14.

    Quindi occorre fare al contrario.
    Questa è la query corretta:
    Codice:
    SELECT * FROM Prenotazioni WHERE IDCamera = $IDCamera AND (CAST('$CheckIn' AS DATETIME) BETWEEN CheckIn AND CheckOut OR CAST('$CheckOut' AS DATETIME) BETWEEN CheckIn AND CheckOut)

  5. #5
    Guest

    Predefinito

    Ciao a tutti, ho letto questa discussione molto interessante riguardante le prenotazioni di camere, l'unica cosa che non ho capito è come richiamare quella query e quindi mostrarla a video con php con i risultati ottenuti, ho provato a farlo io, ma mi dà sempre posti disponibili, anche sulla stessa data già inserita nel database.
    Cambia leggermente la mia tabella, ma alla fine è praticamente simile.
    Grazie in anticipo per le risposte.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •