Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875

    sottrazioni dal database in modo dinamico

    Ciao a tutti
    sto effettuando la sottrazione di alcune camere dal database quando viene effettuata una nuova prenotazione.
    Con le sottrazioni mi trovo bene e funziona il tutto, quello che vi chiedo e':

    E' sbagliato fare la query sempre per tutte le tipologie di camere oppure devo farla solo se quella camera e' stata selezionata?

    Esempio
    Codice PHP:
    $sottrazione_camere "UPDATE tour_operator_camere SET 
    singole = singole - 
    $quantita_singola,
    doppie = doppie - 
    $quantita_matrimoniale,
    matrimoniale_con_infant = matrimoniale_con_infant - 
    $quantita_matrimoniale_infant,
    matrimoniali_con_terzo_letto = matrimoniali_con_terzo_letto - 
    $quantita_matrimoniale_baby,
    triple = triple - 
    $quantita_tripla
    WHERE id_pacchetto = 
    $id_pacchetto";
    $risultato_camere mysql_query($sottrazione_camere)
    or die (
    mysql_errno() . ": " mysql_error()); 
    in questo modo io faccio sempre la modifica dei campi: singole, doppie, matrimoniale_con_infant, matrimoniale_con_terzo_letto e triple

    Quello che faccio e' un errore oppure devo fare un if che indica che se e' stata scelta la doppia mi modifica solo la doppia senza sottrarre per 0 le altre camere?

    Oppure avete altre soluzioni?

  2. #2
    Molto dipende da un fatto:
    con una sola operazione è possibile prenotare camere di tipologie diverse?
    Cioè io utente posso scgeliere di prenotare una singola, tre doppie e una tripla tutto in un unico step?

    Se la risposta è sì, allora quello che fai non è poi così male.

    Se la risposta è no, allora la tua query non è il massimo nè dell'eleganza né del'ottimizzazione, e potresti costruire la query dinamicamente, facendo qualcosa del tipo:

    Codice PHP:
    $sottrazione_camere "UPDATE tour_operator_camere SET ";
    if  (
    $quantita_singola 0
                 
    $sottrazione_camere.= "singole = singole - $quantita_singola ";
    elseif (
    $quantita_matrimoniale 0
                 
    $sottrazione_camere.= "doppie = doppie - $quantita_matrimoniale ";
    ecc
    ecc.
    elseif (
    $quantita_tripla )  
                 
    $sottrazione_camere.= "triple = triple - $quantita_tripla ";
    $sottrazione_camere.= "WHERE id_pacchetto = $id_pacchetto"

  3. #3
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Originariamente inviato da philbert
    Molto dipende da un fatto:
    con una sola operazione è possibile prenotare camere di tipologie diverse?
    Cioè io utente posso scgeliere di prenotare una singola, tre doppie e una tripla tutto in un unico step?

    Se la risposta è sì, allora quello che fai non è poi così male.

    Se la risposta è no, allora la tua query non è il massimo nè dell'eleganza né del'ottimizzazione, e potresti costruire la query dinamicamente, facendo qualcosa del tipo:

    Codice PHP:
    $sottrazione_camere "UPDATE tour_operator_camere SET ";
    if  (
    $quantita_singola 0
                 
    $sottrazione_camere.= "singole = singole - $quantita_singola ";
    elseif (
    $quantita_matrimoniale 0
                 
    $sottrazione_camere.= "doppie = doppie - $quantita_matrimoniale ";
    ecc
    ecc.
    elseif (
    $quantita_tripla )  
                 
    $sottrazione_camere.= "triple = triple - $quantita_tripla ";
    $sottrazione_camere.= "WHERE id_pacchetto = $id_pacchetto"
    si, tu utente puoi prenotare un solo tipo di camera o diversi tipi di camere e quantita...
    quindi come l'ho fatto potrebbe passare per buono?

  4. #4
    si, tu utente puoi prenotare un solo tipo di camera o diversi tipi di camere e quantita...
    quindi come l'ho fatto potrebbe passare per buono?
    Si allora può passare per buono.
    Anche se io costruirei comunque la select dinamicamente (in questo caso con gli if e la virgola alla fine delle varie stringhe)

    Codice PHP:
    $sottrazione_camere "UPDATE tour_operator_camere SET ";

    if  (
    $quantita_singola 0
        
    $sottrazione_camere.= " singole = singole - $quantita_singola,"//virgola alla fine

    if ($quantita_matrimoniale 0
        
    $sottrazione_camere.= " doppie = doppie - $quantita_matrimoniale,";

    ecc

    ecc.

    if (
    $quantita_tripla )  
                 
    $sottrazione_camere.= " triple = triple - $quantita_tripla,";

    $sottrazione_camere substr ($sottrazione_camere0, -1); //tolgo l'ultima virgola

    $sottrazione_camere.= " WHERE id_pacchetto = $id_pacchetto"
    ciao
    P.

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.