Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    96

    verifica disponibilità

    Buonasera ragazzi,
    ho da farvi questa domanda per risolvere un problemino a cui non riesco a venirne a capo.
    Sto creando una script per la gestione delle mie case vacanza. In pratica ho un database contenente una tabella prenotazioni con tre campi: uno che identifica ogni singola casa, uno che identifica la data inizio soggiorno ed uno la data fine soggiorno. Quello che mi preme fare è questo: lo script deve verificare la disponibilità di quell'appartamento prendendo da due appositi form la data di arrivo e la data di partenza. In coseguenza di ciò mi deve dire se l'appartamento è disponibile o meno.

    Grazie a quanti mi daranno aiuto.

  2. #2
    devi creare un record per ogni giorno dell'anno in cui la casa non è disponibile. Non ti servono i due campi data ma uno solo. Così andrai a memorizzare nella tab tutte le date in cui le case nn sono disponibili, di conseguenza successivamente potrai effettuare delle query su quella tabella relativamente alle date richieste, alla ricerca delle date in cui le case sono occupate.


    Volendo se le case sono poche puoi anche creare un record per ogni casa e per ogni gg dell'anno creando un campo disponibilità true/false.

    + o - questa è la logica.


    Ciao

  3. #3
    Oppure salvado in un campo particolare la data in cui non è disponibile o le data in cui non disponibile e verificando con il like se la data è presente in quel campo.

    Es . Campo_Disponibilita $12/05/2004$18/05/2004$24/06/2004$

    E la query per la vefica disponibilità sarà (solo veficia sul campo)

    ... Campo_Disponibilita LIKE '$12/05/2004$'

    Per accodare data vefirichi se la data non è giù presente e allora l'accodi.

    Per rimuovere una data, devi leggere tutto il campo, eleborare le date ed eliminare quella che devi e risalvare il campo.

    PS : il carattere $ lo usi come separatore fra le date.

    Non è una soluzione efficentissima, ma evita il profiferare di record contenenti tutte le date.
    Scusatemi in anticipo per gli ORRORI di ortografica, ma sono analfabeta
    Electronic parts catalog
    Gestione cataloghi ricambio IPC
    Documentazione tecnica & manuali

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    96
    ...mi sembra di capire che ad esempio devo creare 12 tabelle quanti sono i mesi. Quello che mi sfugge è come fare un confronto poi.devo fare un record per volta?

  5. #5
    Ma non 12 tabelle... una sola!

  6. #6
    Utente di HTML.it L'avatar di killer
    Registrato dal
    Jan 2002
    Messaggi
    279
    nIdCasa dOccupataDal dOccupataAl
    ----------------------------------------
    CASA_1 01/01/2004 10/01/2004
    CASA_2 20/01/2004 30/01/2004
    CASA_3 15/02/2004 25/02/2004
    CASA_3 30/02/2004 30/04/2004
    CASA_6 16/05/2004 30/05/2004
    codice:
    If Exists (Select * From TAB_Disponibilita Where nIdCasa = @LaCasa And (dOccupataDal >= @DataDal Or dOccupataAl <= @DataAl))
    Begin
      --La casa impegnata almeno per un periodo
    End
    Else
    Begin
      --La casa è sicuramente libera
    End
    è chiaro che così non hai il dettaglio dei giorni quindi anche se, del periodo che ti hanno richiesto, un solo giorno la casa è occupata ti verra fuori che non hai disponibilità... e quindi non è tanto corretto.

    _| killer |_

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    96
    grazie killer per il suggerimento ma Exists funziona solo con sqlServer, come faccio con Access?

  8. #8
    Certo gestire giorno per giorno ti semplifica la vita anche se volendo puoi fare anche dal/al.

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.