Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209

    Select dinamica in base a diverse categorie di checkbox

    Ciao a tutti.
    Ho problemi di logica sulla creazione di una query ad hoc.
    In pratica io ho una tabella con n record riguardanti una persona.
    Io devo dare la possibilità a questa persona di poter filtrare tutti i dati in base allìanno di riferimento, la tipologia di corso a cui ha partecipato e il ruolo che ha ricorperto.
    Il mio form di filtraggio è composto quindi da tre cateforie di checkbox:

    annoRif
    tipologia
    ruolo

    Ogni categoria è il risultato di una select distinct sulla tabella così da rendere disponibile tutte le alternative.

    Una volta spuntato quello che mi interessa devo creare la query sql da far eseguire nel mio db access.

    Quindi se io con matricola 1234 voglio filtrare i dati volendo tutti i corsi interni fatti nel 2009 e nel 2010 come progettista, cosa devo scrivere?

    so che i filtri avvengono nella condizione WHERE. Ma non so come organizzare tutte queste condizioni.

    Naturalmente le tre categorie passano con metodo post e vencono poi splittati sulla virgola e memorizzate nei rispettivi array.
    Ma poi la query come dovrebbe essere organizzata?

    "SELECT * FROM nometabella WHERE matricole='1234' AND annoriferimento='2009'... Ma poi come devo continuare?

    Grazie a tutti.

  2. #2
    and ... and .... and ... and


    puoi metterne quanti ne vuoi

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209
    Questo lo so. Ma io ho bisogno di selezionare dei corsi che devono essere di una determinata persona, fatto in determinati anni, con un determinato ruolo. Tutte queste opzioni sono selezionate dall'utente.
    Se metto tutti AND e l'utente vuole vedere i corsi che ha svolto nel 2007 e nel 2009, quindi non del 2008, con la clausole AND non verrebbe visualizzato niente. Giusto?

  4. #4
    Originariamente inviato da dtomasini
    Questo lo so. Ma io ho bisogno di selezionare dei corsi che devono essere di una determinata persona, fatto in determinati anni, con un determinato ruolo. Tutte queste opzioni sono selezionate dall'utente.
    Se metto tutti AND e l'utente vuole vedere i corsi che ha svolto nel 2007 e nel 2009, quindi non del 2008, con la clausole AND non verrebbe visualizzato niente. Giusto?
    questa è una condizione diversa da quella prospettata prima. in questo caso

    ... AND (annocorso=2007 OR annocorso=2009) AND ...

    per scegliere gli anni non devi usare una SELECT (menu a tendina) ma una serie di CHECKBOX

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209
    E' proprio quello che cercavo! Thank's!

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    56
    Ciao, anch'io ho lo stesso problema solo che ho molte più condizioni da rispettare (circa 15) in funzione dei checkbox che ho nel form e se devo mettere nel SELECT tutte le varie combinazioni mi trovo a dover scrivere kilometri di codice. Esiste un modo più semplice??
    Grazie

  7. #7
    certo! fai una WHERE di base e poi aggiungi le varie opzioni in base alle checkbox selezionate

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    56
    Ma in questo modo mi trovo a dover scrivere tutte le combinazioni. Con 15 ceckbox ho più di 200 combinazioni.

  9. #9
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    In breve:

    sql = "SELECT * FROM tabella WHERE 1=1"

    poi:
    txt = ""
    if condizione1 then txt = txt &" AND "& condizione1
    if condizione2 then txt = txt &" AND "& condizione2
    if condizione3 then txt = txt &" AND "& condizione3
    ....
    if condizione20 then txt = txt &" AND "& condizione20

    Alla fine:
    sql = sql & txt

    Quindi 20 condizioni, non 200 combinazioni.

    Non fare copia/incolla, è solo un concetto quello espresso.

    Roby

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    56
    OK grazie adesso provo.

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.