Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Date e prenotazioni

  1. #1

    Date e prenotazioni

    Ciao, per un albergo ho una tabella "prenotazioni"

    id_camera
    data_inizio_prenotazione
    data_fine_prenotazione

    ed un classico modulo html per la scelta della camera e l'inserimento della data di inizio alloggio, piu una casella per il numero di notti.

    ovviamente sommando alla data inizio alloggio il numero di notti, ottengo anche la data di fine alloggio.

    come posso verificare che le due date non siano presenti nel db e quindi che la camera sia libera?
    Esistono piu soluzioni ma mi piacerebbe avere un vostro parere per trovare quella piu efficente visto che la pagina è gia pesantina per altri motivi.

    grazie a tutti


  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    428
    se non elenchi le soluzioni, è difficile valutare quella più efficace, no!?

  3. #3
    il problema è capire se una stanza è occupata o meno.

    Se la query dovesse coprire un sol giorno, sarebbe semplice, un confronto unix_timestamp tra la data della form ed i vari record del database per quella camera, ci penserebbe mysql e stop.

    Il problema è che il tutto avviene ad intervalli
    id_camera 3
    data_inzio_prenotazione 20/1/2007
    data_fine_prenotazione 25/1/2007

    id_camera 3
    data_inzio_prenotazione 1/2/2007
    data_fine_prenotazione 9/2/2007

    come faccio a dar disponibile la camera ad un utente che richiede tra il 26 e il 31/1?
    oppure, come faccio a darla bloccata se l'utente richiede 24/1-28/1?

    Avevo pensato di estrarre tutte le camere, e per ciascuna eseguire una query per ciascun giorno (quindi per la camera ID 3 una query per il 24/1, una per il 25/1 fino al 28) ma cosi rischio di arrivare a 1000 query a pagina...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    4
    se le date della nuova prenotazione sono nuovainizio e nuovafine credo ti basti cercare i record che hanno

    (nuovainizio<=datainizio and nuovafine>=datafine) or (nuovainizio>datainizio and nuovafine<datafine) or (nuovafine between datainizio and datafine) or (nuovainizio between datainizio and datafine)

    se trovi anche un solo record la camera è occupata altrimenti libera
    l'ho scritto al volo ma credo che il sistema sia giusto

  5. #5
    Originariamente inviato da maicol
    se le date della nuova prenotazione sono nuovainizio e nuovafine credo ti basti cercare i record che hanno

    (nuovainizio<=datainizio and nuovafine>=datafine) or (nuovainizio>datainizio and nuovafine<datafine) or (nuovafine between datainizio and datafine) or (nuovainizio between datainizio and datafine)

    se trovi anche un solo record la camera è occupata altrimenti libera
    l'ho scritto al volo ma credo che il sistema sia giusto
    ottimo!!!!
    grazie mille... between tra l'altro funziona anche sul server su cui sto lavorando (mysql 4.0)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.