Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    682

    Transazioni (Consigli per gli acquisti)

    Ragazzi devo usare le transazioni per uno script e volevo
    capire se affettato il concetto.
    Allora praticamente devo creare una specie di gestione magazzino e quindi mostrare quanti lotti di un prodotto prendere se disponibile.
    Ho gestito la cosa a grandi linee così:

    1) Ho aperto la connessione al Db ed ho usato BEGIN
    per aprire la transazione
    2)Ho fatto una select per sapere il numero di pezzi di un prodotto e ho stapato a video il numero disponibile.
    3) Ho poi valutato con una if se il numero di scorte era superiore a zero e quindi ho proseguito all'interno della clausola if per raccogliere un eventuale richiesta utente
    per poi eseguire un update e aggiornare il campo quantità pezzi.Poi ho eseguito il COMMIT.
    4) Se non c'é disponibilità per quel prodotto ho stampato
    a video "Prodotto non disponibile" e ROLLBACK(sono in dubbio sulla necessità)

    Avete consigli in merito ?
    Grazie a tutti in anticipo.

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    682
    Posto anche un pò di codice per capirci:

    Codice PHP:
    $db =& new Db("localhost""user""pasw""db");
    $db->SetQueryValue("USE $db->dbName");
    $db->SetQueryValue("BEGIN");
    $query "SELECT amount FROM stack_level WHERE cod = 1060";
    $db->ExecQuery($query);

    while (list(
    $value) = $db->GetQueryValue()) {
        
        if (
    $value 0) {
            
            echo 
    "<html><head></head><body>";
                    echo 
    "Disponibilità magazzino: 
            html_form();
            
            if (isset(
    $_POST['q'])) {
            
                
    $q =& trim($_POST['q']);
                
                
    $query = "UPDATE stack_level SET amount = (amount -'$q')
                          
    WHERE cod 1060";    
                
                
    $db->SetQueryValue($query);
                
    $db->SetQueryValue("COMMIT");
                
    $value

    "
    ;
            }    
            
        }else {
            
            
    $db->SetQueryValue("ROLLBACK");
            
            echo 
    "[b]Non Disponibile[/b]";
        }        
    }    

    echo 
    "</body></html>"

  3. #3
    Ma questo sarebbe un carrello alla fine?
    Se si io ho fatto come te altrimenti questa procedura andrebbe svolta in un carrello.
    In pratica quando un utente clicca su un prodotto per acquistarlo questo viene inserito nel carrello.

    Prima di inserirlo si fa un controllo sul prodotto stesso per verificare che la quantità di prodotto richiesta sia effettivamente disponibile. Se è disponibile non ci sono problemi

    Se invece non dovesse essere disponibile ci sono vari modi di comportarsi.

    Io setto la quantità di prodotto a quella massima disponibile e mostro un messaggio all'utente che lo informa di questo.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    682
    Diciamo che era per chiarirsi le idee sul funzionamento é solo uno script di esempio poi lo sviluppo si può estendere un pò ovunque ci sia la necessità di garantire l'integrità dei dati in quei contesti dove c'é un accesso concorrente.
    Ogni consiglio é critica é ben accetta.

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.