Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    59

    Consiglio query trigger

    Dovrei fare un trigger in cui dopo che un utente ha fatto 5 ingressi , il sesto risulta gratuito e cosi via (dopo 10 ingressi l undicesimo è gratis). Come potrei fare una cosa che risulti più automatizzata possibile? Io avevo pensato a una "zozzata" nel senso che dopo 6 ingressi ne paga 5 e dopo 11 ingressi ne paga 10 (che in realta sono 9 perche ha gia 2 ingressi gratis in attivo) ma cosi non è molto automatizzato. Consigli? grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    59
    nessun consiglio?

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Sicuro non sia sbagliato il conto che fai o vuoi che sia così?
    Mi spiego, vuoi che sia gratuito un ingresso dopo 5 a pagamento?
    Allora lo schema dovrebbe essere questo e non quello che hai scritto:
    1 accesso: a pagamento
    2 accesso: a pagamento
    3 accesso: a pagamento
    4 accesso: a pagamento
    5 accesso: a pagamento
    6 accesso: gratis
    7 accesso: a pagamento
    8 accesso: a pagamento
    9 accesso: a pagamento
    10 accesso: a pagamento
    11 accesso: a pagamento
    12 accesso: gratis

    Quindi quelli gratuiti sono multipli di 6

    pseudocodice

    if((contatore_accessi modulo 6) == 0)
    entrata gratuita;
    else
    entrata a pagamento;

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    59
    si hai ragione. che intendi per contatore_accessi modulo 6 ?

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    110
    if ($accessi %6 == 0) {
    //entri gratis
    } else {
    //paghi
    }

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    59


    La situazione è questa dell' immagine,( questa è la funzione con relativo trigger) in cui alcuni pagano perche rispettano la condizione che sono clienti occasionali altri no.

    In più devo aggiungere quest altra condizione che chi è occasionale dopo 5 ingressi il sesto non lo paga, come detto sopra. Il problema è che io posso avere N utenti occasionali che hanno fatto più di 5 entrate ( la foto è solo x darvi idea di come è strutturato).

    questa è la funzione con relativo trigger...

    Codice PHP:

    CREATE 
    FUNCTION containgressi() RETURNS trigger AS $containgressi$
        
    BEGIN
           
         
    IF NEW.cfpersona in    select cf
                                    from persona
                                    where occasionale is true
                                  
    )
             
              
    then
           

                 
    NEW.costooccasionale := 10;

              else

              NEW.
    costooccasionale := 0;


          
    END IF;

        

         
             RETURN NEW;
        
    END;
        
    $containgressiLANGUAGE plpgsql;

    CREATE TRIGGER containgressi BEFORE INSERT OR UPDATE ON ingresso
        
    FOR EACH ROW EXECUTE PROCEDURE containgressi(); 

    Spero che quest altra cosa possa essere inserita all' interno senza fare un altro trigger se possibile.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    59
    ok..funziona..perfetto...capito il problema.

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.