creare un booking

Stato
Chiusa ad ulteriori risposte.

Rosyanne

Utente Attivo
25 Giu 2004
33
0
0
48
Crotone
Ciao a tutti, ho bisogno del vostro aiuto,
devo creare una specie di booking per un sito che riguarda un hotel. In pratica devo permettere all' utente di verificare la disponibilità di una camera ed eventualmente prenotarla. Sapete se in rete c'è qualcosa da scaricare a riguardo? Ho pensato anche di fare tutto da me, compreso il db, ma poi ad un certo punto mi blocco e non so come andare avanti.
Qualcuno puo' aiutarmi?
Ciao
 
Ciao Rosy, non conosco uno script ad hoc, ma è semplice: nella tabella delle camere inserisci un campo booleano (o numerico da trattare solo con 0 e 1) dove, ad esempio, 0 vuol dire che è libera e 1 che è occupata. Userai questo campo come filtro sulle prenotazioni.

Ciao!
 
lukeonweb ha scritto:
Ciao Rosy, non conosco uno script ad hoc, ma è semplice: nella tabella delle camere inserisci un campo booleano (o numerico da trattare solo con 0 e 1) dove, ad esempio, 0 vuol dire che è libera e 1 che è occupata. Userai questo campo come filtro sulle prenotazioni.

Ciao!

Ciaooooo!
visto che sei sempre così gentile, ti chiedo una cosa, in pratica io ho quattro tabelle, una:hotel, con i nomi degli hotel, descrizione e le relative foto, un'altra:camere, con il numero di camera, tipologia, prezzo, una terza:servizi, con tutti i servizi disponibili per ogni hotel, e una quarta: prenotazioni, con le date in cui le camere sono prenotate. Ovviamente tutte collegate tra loro con id. La mia domanda è la seguente, devo averne anche una con tutte le date (tipo calendario) , mi sembra strano, ma se non è così come faccio a fare una ricerca sulle date disponibili?
 
Qui la cosa è delicatina, devi basare tutto su una quary che estrae solo le camere disponibili in quella data, quindi le prenotazioni devono essere legate alle stanze!
tra l'altro devi pure controllare le date se si accavallano:

se io prenoto da x a y, ma la stanza è disponibile da x a y-1, non può fare la prenotazione!

E' un casino, bisogna sedersi in un tavolo e pensare, pensare, pensare...
 
il problema infatti è la query

daviduccio ha scritto:
Qui la cosa è delicatina, devi basare tutto su una quary che estrae solo le camere disponibili in quella data, quindi le prenotazioni devono essere legate alle stanze!
tra l'altro devi pure controllare le date se si accavallano:

se io prenoto da x a y, ma la stanza è disponibile da x a y-1, non può fare la prenotazione!

E' un casino, bisogna sedersi in un tavolo e pensare, pensare, pensare...

Ciao, grazie per la risposta, almeno ho capito che il mio ragionamento non è sbagliato, infatti avevo pensato la stessa cosa. In pratica ho fatto due query, una che estrae tutte le camere con le caratteristiche scelte dalla tabella "camere", un'altra query che dovrebbe estrarre tutte le camere occupate nell'intervallo della data scelta dal''utente per l'arrivo e la partenza. Poi con un "if" dico: se le camere estratte sono presenti nella seconda query , non c'è disponibilità, altrimenti mi fa vedere le camere disponibili.
Più o meno spero di essermi spiegata, il punto è che non riesco a fare il comando sulla data. Avevo pensato di usare l'operatore between, ma non funziona.
:crying:
 
Mi sto trovando ank'io..su questo problema..

Nn riesco a fare uscire una query decente..che mi selezioni le camere occupate in base all'intervallo di tempo (Bah sarò negata io..a farle ste query!!).

Ho trovato un metedo più lungo..
Praticamente quando scrivo nel db la prenotazione che va da giorno x a giorno y..mi segno nel db (x ogni record) tutti i giorni ke stanno nell'intervallo di tempo.

Esempio DataDa:09/08/2006 - DataA:10/08/2006

Scrivo nel db 2 record:
Id_Camera=1 ; Data=09/08/2006
Id_Camera=1 ; Data=10/08/2006


Può andare sto discorso?? Oppure carico troppo il db senza motivo?? O qualcuno è così bravo che riesce a fare un ragionamento più lineare?? :crying: Sigh io nn riesco!!
 
Vediamo se riesco a darvi una mano! :cool:
Secondo me ci vuole una tabella "Camere" con i seguenti campi:

ID | Tipo | DataI | DataF |

ID=autoincremento
Tipo= tipo di stanza (Matrimoniale, 1 posto, 2 posti, 2+1)
DataI=Data inizio prenotazione
Data2=Data fine prenotazione


Per cui un filtraggio SQL con i dati provenienti dal form:

"SELECT * FROM camere WHERE tipo="&request.form("tipo")&" AND DataI > #"&request.form("datai")&"# AND DataF < #"&request.form("dataf")&"# "


FORSE funziona. O mi sfugge qualcosa?
 
Ciao Davide..ti ringrazio dell'interessamento..
Allora..
Prima cosa..la tabella camere l'ho fatta..ma deve x forza esserci una tabella prenotazioni..xkè devo tenere in archivio le prenotazioni associate al cliente..e poi x la stessa camera possono esserci più prenotazioni in differenti date..
Quindi secondo me..è giusto così..come ho fatto.

Secondo:
con la query ke hai scritto nn prende le date "a cavallo".

Esempio: camera occupata Da 02/07/2006 al 05/07/2006
Se chiedo disponibilità da 01/07/2006 al 06/07/2006..la query nn va più..

Uhmmm...forse mi conviene la soluzione lunga..
Se ti viene in mente qlcs..
 
hai ragione, non poteva essere buona un'idea venuta fuori in 1 minuto.

Cmq per la tabella secondo me va bene così. Se le prenotazioni le gestisci a mò di calendario, vedrai che da data N a data K la camera è occupata dal sig X.
 
Poi ho risolto..scrivendo nel db più record x la stessa prenotazione..come postato sopra..
basy82 ha scritto:
Esempio DataDa:09/08/2006 - DataA:10/08/2006

Scrivo nel db 2 record:
Id_Camera=1 ; Data=09/08/2006
Id_Camera=1 ; Data=10/08/2006

..in modo ke la query poi la faccio su un giorno solo..(compreso nell'intervallo di tempo richiesto).

Metto in un array tutte le camere occupate..e mi faccio un altra Select nella tabella camere ke mi prende tutte le camere diverse..da quelle occupate..

Forse un pò lungo come metodo..ma nn ho trovato soluzione migliore..:hammer:
 
Io ho ripensato una qury così:


Campodata1 > data1 OR Campodata1 < data2 AND Campodata2 > data1 OR Campodata2 < data2


dovrebbe cercare di intercettare le prenotazioni fra quelle esistenti, se il recordset non restituisce records, allora la prenotazione può essere effettuata.


Ho risbagliato?
 
Stato
Chiusa ad ulteriori risposte.

Discussioni simili