Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18

Discussione: Prenotazione mysql

  1. #11
    devi controllare che né datainizio né datafine siano nell'intervallo della prenotazione

  2. #12
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Quote Originariamente inviata da optime Visualizza il messaggio
    devi controllare che né datainizio né datafine siano nell'intervallo della prenotazione
    Non basta, il periodo che uno vuole prenotare potrebbe includere completamente quello già prenotato, quindi non è detto che se nessuna delle 2 date è compresa, allora la prenotazione si può fare.
    Esempio:

    Stanza prenotata dal 20/6/2018 al 25/6/2018
    una prenotazione che richiede le date dal 18/6/2018 al 28/6/2018, pur non avendo nessuna delle 2 date di inizio e fine comprese nell'intervallo sopra, è da rifiutare.

  3. #13
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Allora devi coprire tutti i casi possibili in base alla data di inizio e fine in modo distinto, non solo per intervalli.
    Ad esempio:
    ( data_inizio_pren è compresa tra inizio_occ e fine_occ OR
    data_fine_pren è compresa tra inizio_occ e fine_occ ) OR
    ( data_inizio_pren è precedente a inizio_occ AND data_fine_pren è successiva a fine_occ ) OR
    ...
    eventuali altri casi in cui la stanza non è prenotabile.
    Ciao Grazie per la risposta, ho provato a fare la query in questo modo, ma mi da sempre errore di sintassi:

    codice:
    SELECT * FROM carrello WHERE ((data_inizio =>'2018-08-04' AND data_fine <='2018-08-04')  OR (data_inizio <= '2018-08-04' AND data_fine >= '2018-08-4') OR (data_inizio >= '2018-08-04' AND data_fine >='2018-08-04')) AND id_postazione = 1

  4. #14
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Secondo me basta che verifichi che
    data_inizio <= '$datafine' AND data_fine >= '$datainizio'

    Se trovi qualcosa allora non puoi prenotare

  5. #15
    Quote Originariamente inviata da boots Visualizza il messaggio
    Secondo me basta che verifichi che
    data_inizio <= '$datafine' AND data_fine >= '$datainizio'

    Se trovi qualcosa allora non puoi prenotare
    Cosi da solo non va, perchè se la data di inizio è tipo : 2018-08-03 e la data finale è 2018-08-23


    e nel database ho segnato 2018-08-07 e 2018-08-15
    la fa prenotare, invece non dovrebbe perchè tra il periodo che va dal 8 a 15 la stanza è occupata

  6. #16
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Scusa ma:
    07-08 è minore di 23-08
    AND
    15-08 é maggiore di 03-08

    Di conseguenza dovrebbe trovarti la prenotazione e quindi non permetterti di effettuarne un altra

  7. #17
    Quote Originariamente inviata da boots Visualizza il messaggio
    Secondo me basta che verifichi che
    data_inizio <= '$datafine' AND data_fine >= '$datainizio'

    Se trovi qualcosa allora non puoi prenotare
    NO, scusa non avevo visto che avevi invertiti , forse funziona , sto testando

  8. #18
    Quote Originariamente inviata da boots Visualizza il messaggio
    Scusa ma:
    07-08 è minore di 23-08
    AND
    15-08 é maggiore di 03-08

    Di conseguenza dovrebbe trovarti la prenotazione e quindi non permetterti di effettuarne un altra
    Grazie funziona ho fatto più testaggi

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 © 2024 vBulletin Solutions, Inc. All rights reserved.