controllo prenotazioni già inserite

Raccoglitore di domande e risposte relative a ScriptCase, il generatore di codice php per lo sviluppo rapido di applicazioni.
Regole del forum
Nel forum è vietato fare pubblicità senza avere l'autorizzazione dello staf di Netspecial.
peraziende
Messaggi: 103
Iscritto il: 17 mar 2014, 17:08

controllo prenotazioni già inserite

Messaggio da peraziende » 17 mar 2015, 09:18

Salve, ho un DB in cui registro delle prenotazioni delle camere;
id_camera
dal
al
+ altre informazioni della prenotazione.

Voglio creare una FORM MULTIPLA per inserire più prenotazioni e semplificare il processo di registrazione delle stesse.
Tuttavia la form deve controllare in fase di registrazione che una camera sia libera nel periodo dal / al
cioè; se una camera è occupata nel periodo dal/al allora la registrazione che vado a fare deve saltare e mi deve essere dato una comunicazione.

Come posso inserire questo controllo nella form?????

peraziende
Messaggi: 103
Iscritto il: 17 mar 2014, 17:08

Re: controllo prenotazioni già inserite

Messaggio da peraziende » 17 mar 2015, 15:38

Nessun suggerimento???

Fabio
Messaggi: 449
Iscritto il: 20 feb 2014, 11:43

Re: controllo prenotazioni già inserite

Messaggio da Fabio » 18 mar 2015, 22:39

Potresti controllare i dati direttamente onChange (usando un Evento Ajax).
Quindi prima di tentarne l'inserimento verifichi se il dato e valido.

peraziende
Messaggi: 103
Iscritto il: 17 mar 2014, 17:08

Re: controllo prenotazioni già inserite

Messaggio da peraziende » 13 apr 2015, 09:41

Ciao, ho capito come procedere ma una volta che si apre lo spazio dove scrivere codice php, tra i suggerimenti a destra trovo già un pulsante che sintetizza la funzione di controllo data?

In pratica a me serve un controllo che faccia questo.

Prima di scrivere in tabella prenotazione
controlla id camera se nella tabella è già presente con date DAL = alla data DAL che cerco di caricare

admin
Site Admin
Messaggi: 218
Iscritto il: 30 gen 2014, 21:33

Re: controllo prenotazioni già inserite

Messaggio da admin » 13 apr 2015, 21:58

Dovrebbe esserci un "check for existing record" o qualcosa di simile.
Cioè: controlla se un record esiste.
Scriptcase supporto e vendita per l'italia
www.scriptcasecommunity.it

peraziende
Messaggi: 103
Iscritto il: 17 mar 2014, 17:08

Re: controllo prenotazioni già inserite

Messaggio da peraziende » 14 apr 2015, 11:31

Grazie mille per avermi messo sulla giusta strada.
Allora ho trovato la funzione ti dico brevemente una cosa, la mia tabella si chiama
prenotazioni
e si differenzia per;
id_camera (ogni hotel ha più camere)
dal (data arrivao)
al (data partenza)

come faccio a dire questo;
REGISTRA la PRENOTAZIONE solo se non è già presente in DB prenotazione un id_camera con intervallo di tempo DAL - AL compreso nell'intervallo di tempo DAL AL di una nuova registrazione con stesso id_camera?

------------------------------------
Questo è il codice che mi hai suggerito ma non so adattarlo

/**
* Check for an existing record
*/

// SQL statement parameters
$check_table = 'prenotazione_h'; // Table name
$check_where = "dal = 'condition'"; // Where clause

// Check for record
$check_sql = 'SELECT *'
. ' FROM ' . $check_table
. ' WHERE ' . $check_where;
sc_select(dataset, $check_sql);

if (false == {dataset})
{
// Error while accessing database
}
elseif ({dataset}->EOF)
{
// No record found
}
else
{
// Record found
}

Mi aiuti????????

Fabio
Messaggi: 449
Iscritto il: 20 feb 2014, 11:43

Re: controllo prenotazioni già inserite

Messaggio da Fabio » 15 apr 2015, 15:06

Codice: Seleziona tutto

$data_dal = ''; // quì metti la "data dal" che vuoi controllare se esiste già
// Check for record
$check_sql = "SELECT *  FROM prenotazione_h WHERE dal = '".$data_dal."' ";
sc_select(dataset, $check_sql);

if (false == {dataset})
{
    // Error while accessing database
}
elseif ({dataset}->EOF)
{
    // Non esiste alcuna prenotazione, quindi puoi procedere
}
else
{
    // Esiste già una prenotazione, quindi fermi tutto..
    sc_error_message("ATTENZIONE! Data dal, occupata");
}

peraziende
Messaggi: 103
Iscritto il: 17 mar 2014, 17:08

Re: controllo prenotazioni già inserite

Messaggio da peraziende » 15 apr 2015, 20:20

Fabio grazie di cuore per la disponibilità e l'aiuto, però in questa select;
$data_dal = ''; // quì metti la "data dal" che vuoi controllare se esiste già
// Check for record
$check_sql = "SELECT * FROM prenotazione_h WHERE dal = '".$data_dal."' ";
sc_select(dataset, $check_sql);

vado a controllare se esiste una prenotazione con una data DAL

ma a me serve che il controllo sia;
-Se sto inserendo una prenotazione di una camera con id= 10 DAL= 01/07/2015 al 03/07/2015
controlla solo per la camera id= 10
se esiste già un periodo con un intervallo tra il 01 e 03 del 07/2015

perché io potrei avere una prenotazione in DB per la camera id= 10 dal 02 al 03 per una notte e se vado a registrarne una dal 01 al 05 ad esempio me la fa passare anche se in realtà non dovrebbe ......

Fabio
Messaggi: 449
Iscritto il: 20 feb 2014, 11:43

Re: controllo prenotazioni già inserite

Messaggio da Fabio » 16 apr 2015, 11:13

Ciao,
devi lavorare sulla clausola "WHERE", aggiungendo id=.. and... e tutte le condizioni che vuoi controllare.
Concentrati sull'sql.

peraziende
Messaggi: 103
Iscritto il: 17 mar 2014, 17:08

Re: controllo prenotazioni già inserite

Messaggio da peraziende » 17 apr 2015, 08:27

Fabio ho fatto questa interrogazione SQL ma da errore e non inserisce camere per nessuna data mi da errore data_dal SQL

$data_dal = 'dal';
$check_sql = "SELECT * FROM prenotazione_h WHERE camera = $camera AND dal < '".$data_al."' AND al > '".$data_dal."' ";
sc_select(dataset, $check_sql);

Rispondi

Chi c’è in linea

Visitano il forum: Ahrefs [Bot] e 2 ospiti